|
132
|
Programación / Scripting / Re: [Batch] for /R y for /D
|
en: 8 Marzo 2009, 04:49 am
|
tengo un artículo exclusivo para una ezine que trata sobre el comando for, si quieres te lo facilito, pero con el compromiso de que no lo publiques en ninguna parte.
|
|
|
133
|
Programación / Scripting / Re: ¿Cómo hago este BATH (o .bat)?
|
en: 6 Marzo 2009, 02:49 am
|
prueba lo siguiente: ( echo.admin echo.admin echo.ppp config 1.8.35 down echo.ppp confing 1.8.35 up ) | telnet 192.168.1.2
o sino: creas un archivo llamado config.txt con lo siguiente: admin admin ppp config 1.8.35 down ppp confing 1.8.35 up
y prueba esto: telnet 192.168.1.2 < config.txt
|
|
|
134
|
Programación / Java / Re: Duda con JCheckBox
|
en: 5 Marzo 2009, 22:52 pm
|
le recomendé eso para que no siga la basura de código que le recomiendas: puse el ejmplo mas sencillo que encontre... solo es ilustrativo, señor super programador que lo sabe todo Qué sea sencillo no implica que sea malo, te recuerdo que java es un lenguaje portable, y lo que pusiste funcionaría solo en windows, es como que te pidan programar en java un visualizador de imágenes, y haces algo similar a lo que pusiste, pero abriendo el previsualizador de imágenes de windows xp (¿dónde está la programación java?). Saber esto y decirlo no me hace un sabelotodo ni un super programador. Además yo propuse mi solución que le beneficia más a él, que es aprender de los códigos de ejemplo oficiales del lenguaje java, te aseguro que para él es mucho mejor esto, que darle un código muy malo, o sea le haces un daño, porque le enseñas malas prácticas de programación, y le justificas que porque sepa poco del lenguaje debe hacer cosas malas, y eso no es así, java es un lenguaje que te permite realizar cosas aunque no sepas cómo, ya que tiene un api gigantesca que solo debes leerla.
|
|
|
136
|
Programación / Java / Re: Duda con JCheckBox
|
en: 5 Marzo 2009, 21:03 pm
|
en la misma página de Sun hay tutoriales.
así es en la pagina de sun encontaras muchismo... aprende a programar bien mejor yo creo que esta empesando, y es valido que pregunte..... le recomendé eso para que no siga la basura de código que le recomiendas: mira es algo así try { Runtime.getRuntime().exec("C:/WINNT/explorer.exe d:"); } catch (java.io.IOException e) { System.err.println("Error: " + e.getMessage()); }
el code no es mio solo busque por hay lo que pasa que no me acordaba
|
|
|
137
|
Programación / Scripting / Re: [batch] Error con For y Do
|
en: 5 Marzo 2009, 17:41 pm
|
Mira, tienes problemas de lógica y de programación batch. Tu código corregido queda así. Dejo comentado lo antiguo y en rojo los cambios:
@echo off setlocal enabledelayedexpansion echo ********** echo *Sk9ITk5Z* echo ****************************************** echo * crear carpetas pára respaldos * echo * mensuales * echo ****************************************** echo De cual mes quieres crear las carpetas? rem SET /P m=
SET /P mes=
echo Cuantos dias tiene el mes? rem SET /P d= rem SET dia=%date:~0,2% rem esto para que si no lo usas nunca
SET /P dia=
rem SET mes=%m%
SET año=%date:~6,4% REM ******ciclo para crear las carpetas******** rem FOR /L %%i IN (1,1,%d%) DO FOR /L %%i IN (1,1,%dia%) DO ( rem SET FOLDER=%dia%-%mes%-%año% SET FOLDER=%%i-%mes%-%año% rem MKDIR %FOLDER% MKDIR !FOLDER! ) REM *******termina el ciclo******************** PAUSE
Explicación: se renombra la variable m por mes respectivamente, esto es para evitar tener dos variables con el mismo contenido, se borra set dia=%date:~0,2% porque eso no será utilizado, más bien se renombra la variable d por dia. Ahora, los for realizan la expansión simple de variables cuando leen, y no cuando ejecutan, por eso cuando haces: SET FOLDER=%dia%-%mes%-%año% se crea dicha variable, pero cuando haces: MKDIR %FOLDER% el for no expande FOLDER porque cuando recién for leyó FOLDER no existía por lo que aunque crees la variable dentro del for, no será expandida porque la expansión simple la realiza cuando leyó y no cuando ejecuta, y aún si la variable FOLDER hubiese existido antes, con MKDIR FOLDER crearías siempre la misma carpeta porque la expandiría solo al leerla. De todas formas tienes un error de lógica porque cuando haces: FOR /L %%i IN (1,1,%d%) DO ( SET FOLDER=%dia%-%mes%-%año% estás siempre creando la misma carpeta en FOLDER por eso: se reemplaza ese %dia% por %%i
y luego se utiliza expansión retardada (no simple) para que siempre for utilize el valor actual de la variable. se reemplaza: MKDIR %FOLDER% por MKDIR !FOLDER!
la expansión retardada se activó al principio con SETLOCAL ENABLEDELAYEDEXPANSION
Aún así, yo te escribí por segunda vez tu script (usando expresiones regulares para validar la entrada), no sé si lo habrás visto (actualicé el post largo que dijiste) porque se debe validar las entradas, por ejemplo que realmente escriban números y no letras en la variable mes y año, y que no presionen simplemente enter, porque se pueden producir resultados "catástroficos", por ejemplo si cuando solicita mes presionas enter, y cuando solicita anho pones un numero, por ejemplo 2009, se crearían 2008 carpetas.
|
|
|
139
|
Programación / Scripting / Re: [batch] Error con For y Do
|
en: 4 Marzo 2009, 21:53 pm
|
disculpa, lo modifiqué y lo dejé cómo tú querías, con solicitud al usuario. Debes ingresar mes y anho separado por un guión. Ejemplo: 1-2009
No es necesario solicitar la cantidad de días, pues todos los meses tienen la misma cantidad de días todos los años, excepto febrero que tiene 29 si el año es bisiesto.
Puedes ajustar el rango del año, yo lo deje de 1980 a 2099.
|
|
|
140
|
Programación / Scripting / Re: [batch] Error con For y Do
|
en: 4 Marzo 2009, 20:13 pm
|
@echo off setlocal enableextensions
:main (set mes=) (set anho=) (set mesanho=) echo.mes:1 a 12 echo.anho:1980 a 2009 set /p mesanho=mes-anho: if not defined mesanho (goto :main) set mesanho | findstr.exe /r "^mesanho=[0-9]*-[0-9]*$" >nul || (echo.formato incorrecto&goto :main) for /f "tokens=1-2 delims=- eol=" %%^> in ("%mesanho%") do set /a mes=%%^>&set /a anho=%%^? if %mes% lss 1 (echo.mes no puede ser 0.&goto:main) if %mes% gtr 12 (echo.mes no puede mayor a 12.&goto:main) if %anho% lss 1980 (echo.anho no puede ser menor a 1980.&goto:main) if %anho% gtr 2099 (echo.anho no puede ser mayor a 2099.&goto:main) set bisiesto=false set feb=28 if 2 equ %mes% (call :bisiesto %anho%) if /i %bisiesto%==true (set feb=29) for /f "tokens=%mes%" %%a in ("31 %feb% 31 30 31 30 31 31 30 31 30 31") do set limite=%%a for /l %%d in (1,1,9) do mkdir 0%%d-%mes%-%anho% >nul 2>&1 for /l %%d in (10,1,%limite%) do mkdir %%d-%mes%-%anho% >nul 2>&1 pause goto :eof
:BISIESTO ::VERSION: 1.7 ::$AUTHOR: CARLOS SETLOCAL SET BISIESTO=FALSE SET /A MOD1="%1 %% 4" >NUL 2>&1 SET /A MOD2="%1 %% 100" >NUL 2>&1 SET /A MOD3="%1 %% 400" >NUL 2>&1 IF [%MOD1%]==[0] (IF NOT [%MOD2%]==[0] (SET BISIESTO=TRUE)) IF [%MOD3%]==[0] (SET BISIESTO=TRUE) ENDLOCAL & SET "BISIESTO=%BISIESTO%" GOTO :EOF
|
|
|
|
|
|
|