Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - leogtz

#2561
Scripting / Comportamiento inesperado [FOR+PAUSE]
28 Diciembre 2008, 18:00 PM
Bueno esto realmente me sorprendio, segun mi experiencia haciendo scripts en Batch, pense que el siguiente script generaria algo como esto :


ALLUSERSPROFILE
APPDATA
CLIENTNAME
CommonProgramFiles
COMPUTERNAME
ComSpec
Desktop
FP_NO_HOST_CHECK
HOMEDRIVE
HOMEPATH
LOGONSERVER
NUMBER_OF_PROCESSORS
OS
Path
PATHEXT
PROCESSOR_ARCHITECTURE
PROCESSOR_IDENTIFIER
PROCESSOR_LEVEL
PROCESSOR_REVISION
ProgramFiles
PROMPT
SESSIONNAME
SystemDrive
SystemRoot
TEMP
TMP
USERDOMAIN
USERNAME
USERPROFILE
windir
Presione una tecla para continuar . . .


@ECHO OFF
FOR /F "TOKENS=1 DELIMS==" %%X IN ('SET') DO (
ECHO.%%X
)&PAUSE



Pero da un comportamiento inesperado :

ALLUSERSPROFILE
Presione una tecla para continuar . . .
APPDATA
Presione una tecla para continuar . . .
CLIENTNAME
Presione una tecla para continuar . . .
CommonProgramFiles
Presione una tecla para continuar . . .
COMPUTERNAME
Presione una tecla para continuar . . .
ComSpec
Presione una tecla para continuar . . .
Desktop
Presione una tecla para continuar . . .
FP_NO_HOST_CHECK
Presione una tecla para continuar . . .
HOMEDRIVE
Presione una tecla para continuar . . .
HOMEPATH
Presione una tecla para continuar . . .
LOGONSERVER
Presione una tecla para continuar . . .
NUMBER_OF_PROCESSORS
Presione una tecla para continuar . . .
OS
Presione una tecla para continuar . . .
Path
Presione una tecla para continuar . . .
PATHEXT
Presione una tecla para continuar . . .
PROCESSOR_ARCHITECTURE
Presione una tecla para continuar . . .
PROCESSOR_IDENTIFIER
Presione una tecla para continuar . . .
PROCESSOR_LEVEL
Presione una tecla para continuar . . .
PROCESSOR_REVISION
Presione una tecla para continuar . . .
ProgramFiles
Presione una tecla para continuar . . .
...


Aqui se ve que el for esta cerrado ya (con el ")" ) :
)&PAUSE


Pero funciona como si fuera de esta manera :
@ECHO OFF
FOR /F "TOKENS=1 DELIMS==" %%X IN ('SET') DO (
ECHO.%%X
PAUSE
)



Otro ejemplo de uso es con el argumento /L :
@ECHO OFF
FOR /L %%X IN (1,1,10) DO (
ECHO.%%X
)&PAUSE


Saludos a todos.
#2562
Scripting / Re: Descubrimiento en comando for
28 Diciembre 2008, 16:06 PM
Cita de: _carlos_ en 23 Diciembre 2008, 08:31 AM
La utilidad de mi descubrimiento es que por ejemplo si antes declaraban:


for /f "tokens=1-4" %%Y in ("p1 p2 p3 p4") do (
echo %%Y%%Z...
)


y querían mostrar el token 1,2,3,4 solo podíamos mostrar el token 1 y 2, porque luego de %%Y viene %%Z y después ... no sabíamos que letra venía.

Entonces ahora podemos hacer:

for /f "tokens=1-4" %%Y in ("p1 p2 p3 p4") do (
echo %%Y%%Z%%[%%\
)



Carlos, me acabo de encontrar un codigo en la web de Rob Van Der Woude que ya utilizaba caracteres fuera de a-z A-Z, hechale un vistazo:

http://www.robvanderwoude.com/amb_shortcutsnt.html


Citarfor /f "tokens=*" %%? in (
'dir/b/a %1? 2^>nul') do (set name=%%~nx?)
#2563
Scripting / Re: Music.bat
28 Diciembre 2008, 16:02 PM
Cita de: <[(x)]> en 28 Diciembre 2008, 04:55 AM
holas

   Muy bueno el .bat    :)

 
    a y una pregunta me inicie hace un par de horas con batch y no se para que sirben los ';'(puntoYcoma). Podrían explicarme.

  gracias y 54¬ud05

  

Cita de: kraszic en 28 Diciembre 2008, 15:33 PM

Una pregunta leo, porq los ;;; ???

saludos
Son delimitadores, no afectan en nada al codigo, puedes quitarlos si quieres, el funcionamiento será el mismo, en esta caso, yo los use solamente de adorno.

Cita de: <[(x)]> en 28 Diciembre 2008, 14:46 PM
Aka les dejo ete temaso jeje :P

Himno a la Alegría


@echo off
echo Od a la Alegria
echo.

call MUSIC.BAT E 1
call MUSIC.BAT E 1
call MUSIC.BAT F 1
call MUSIC.BAT G 1
call MUSIC.BAT G 1
call MUSIC.BAT F 1
call MUSIC.BAt e 1
call MUSIC.BAT D 1
call MUSIC.BAT c 1
call MUSIC.BAT c 1
call MUSIC.BAT D 1
call MUSIC.BAT E 1
call MUSIC.BAT E 1
call MUSIC.BAT D 1 ::pausa 1
ping -n 2 localhost>nul
call MUSIC.BAT E 1
call MUSIC.BAT E 1  
call MUSIC.BAT F 1
call MUSIC.BAT G 1
call MUSIC.BAT G 1
call MUSIC.BAT F 1 
call MUSIC.BAT E 1 
call MUSIC.BAT D 1
call MUSIC.BAT C 1
call MUSIC.BAT C 1
call MUSIC.BAT D 1
call MUSIC.BAT E 1
call MUSIC.BAT D 1 
call MUSIC.BAT C 1 ::pausa 1
ping -n 2 localhost>nul
call MUSIC.BAT D 1 ::pausa 1
ping -n 2 localhost>nul
call MUSIC.BAT E 1 ::pausa ,5
ping -n 1 localhost>nul
call MUSIC.BAT C 1 ::pausa ,5
ping -n 1 localhost>nul
call MUSIC.BAT D 1 ::pausa 1
ping -n 2 localhost>nul
call MUSIC.BAT E 1 ::pausa ,5
ping -n 1 localhost>nul
call MUSIC.BAT F 1 ::pausa ,5
ping -n 1 localhost>nul
call MUSIC.BAT E 1
call MUSIC.BAT C 1 ::pausa 1
ping -n 2 localhost>nul
call MUSIC.BAT D 1
call MUSIC.BAT c 1
call MUSIC.BAT D 1
call MUSIC.BAT G 1 ::pausa 1
ping -n 2 localhost>nul
call MUSIC.BAT E 1
call MUSIC.BAT E 1
call MUSIC.BAT F 1
call MUSIC.BAT G 1
call MUSIC.BAT G 1
call MUSIC.BAT F 1
call MUSIC.BAT E 1
call MUSIC.BAT D 1
call MUSIC.BAT C 1
call MUSIC.BAT C 1
call MUSIC.BAT D 1
call MUSIC.BAT E 1
call MUSIC.BAT D 1
call MUSIC.BAT C 1 ::pausa1
ping -n 2 localhost>nul
echo Fin.





Jeje muy bueno, mira esta otra:
@echo off
nircmd beep 262 500
nircmd beep 393 500
nircmd beep 350 100
nircmd beep 330 100
nircmd beep 294 100
nircmd beep 525 500
nircmd beep 393 500
nircmd beep 350 100
nircmd beep 330 100
nircmd beep 294 100
nircmd beep 525 500
nircmd beep 393 500
nircmd beep 350 200
nircmd beep 330 200
nircmd beep 350 200
nircmd beep 294 400
#2564
Scripting / Error de redacción en la ayuda de COPY
24 Diciembre 2008, 22:35 PM
Consultando la sintaxis del comando Copy, me encontre con un error de redacción en la misma :

Observen :

C:\>copy /?
Copia uno o más archivos en otra ubicaciónción.

COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] origen [/A | /B]
     [+ origen [/A | /B] [+ ...]] [destino [/A | /B]]

  origen       Especifica el archivo o archivos que deben copiarse.
  /A           Indica un archivo de texto ASCII.
  /B           Indica un archivo binario.
  /D           Permite al archivo de destino que se cree descifrado
  Destino      Especifica el directorio y el nombre de archivo de los
               nuevos archivos.
  /V           Verifica que los nuevos archivos se escriben
               correctamente.
  /N           Si es posible, usa un nombre de archivo corto al copiar
               un archivo cuyo nombre no tiene el formato 8.3.
  /Y           Suprime la petición de confirmación cuando se va a
               sobrescribir un archivo destino existente.
  /-Y          Realiza la petición de confirmación cuando se va a
               sobrescribir un archivo destino existente.
  /Z           Copia archivos de red en modo reiniciable.

El modificador /Y puede estar preestablecido en la variable de entorno
COPYCMD. Esto puede anularse con el modificador /-Y en la línea de
comando. Está predeterminado el pedir la confirmación del usuario
antes de sobrescribir, excepto si el comando COPY se ejecuta desde un
archivo de comandos por lotes.

Para anexar archivos, especifique un único archivo de destino, pero
varios archivos de origen (usando caracteres comodines o el formato archivo1+archivo2+arch
ivo3).

C:\>


El error está en la primera línea.
#2565
@ECHO OFF
:INICIO
cls
ECHO.
ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
ECHO  ----------------------------------------------------------------------------
ECHO.
ECHO   Pasos a realizar:
ECHO.
ECHO.
ECHO.     1 - Crear arranque del Pendrive ( Proceso Manual)
ECHO.     2 - Instalar archivos del Hack360 en Pendrive
ECHO.   
ECHO.
ECHO.     S - Salir
:OPTION
rem El comando Choice, usado especialmente para dar opciones
rem El argumento /N oculta la pregunta
rem En el argumento /c se especifican las opciones, en este caso el usuario es
rem forzado a que teclee las teclas : 1, 2 o S
rem Todo es redirigido a NUL, para no mostrar ninguna informacion en pantalla
CHOICE /N /c:12S > NUL
rem Los diagnosticos que devolveria el comando estan especificados de orden
rem derecha a izquierda.
rem Si el usuario teclea "S" se devolvera 3
rem Si el usuario teclea "2" se devolvera 2
rem etc.
IF ERRORLEVEL 3 EXIT
IF ERRORLEVEL 2 GOTO INSTALL
IF ERRORLEVEL 1 start leeme.htm
GOTO OPTION
rem Se lleha a esta etiqueta si el usuario tecleo 2
:INSTALL
set a=xxx
:ELIGE
CLS
rem El @ no es necesario antes del Echo, aunque puede afectar si se quita el @echo off
@ECHO.
@ECHO  ----------------------------------------------------------------------------
ECHO                       HACK360 IX 1.4 SAMSUNG (XBOX 360)
@ECHO  ----------------------------------------------------------------------------
@ECHO.
rem Lo mismo que el otro
choice /n /C:ADEFGHIJKLMNOPQR Selecciona la unidad para instalar el HACK360:
rem Depende de lo que el usuario elija se crearan variables.
if %errorlevel%==16 set a=r
if %errorlevel%==15 set a=q
if %errorlevel%==14 set a=p
if %errorlevel%==13 set a=o
if %errorlevel%==12 set a=n
if %errorlevel%==11 set a=m
if %errorlevel%==10 set a=l
if %errorlevel%==9 set a=k
if %errorlevel%==8 set a=j
if %errorlevel%==7 set a=i
if %errorlevel%==6 set a=h
if %errorlevel%==5 set a=g
if %errorlevel%==4 set a=f
if %errorlevel%==3 set a=e
if %errorlevel%==2 set a=d
if %errorlevel%==1 set a=a
if %a%==xxx GOTO ELIGE
if %a%==a CALL :DISQUETE
rem Se copia la carpeta HACK360 a la unidad seleccionada por el usuario
XCOPY HACK360\. %a%:\ /E /V /Q /H /R /Y > NUL
GOTO FIN

:DISQUETE
rem Se checa por si es un "disquete"
CHKDSK a: > CHKDSK.TXT
rem Se busca la cadena "1.457.664" en el documento chkdsk.txt creado por el comando chkdsk
find "1.457.664" CHKDSK.TXT > NUL
rem Si el find encontro la cadena "1.457.664" saldra del Batch Script por falta de espacio.
if %errorlevel%==0 GOTO :eof
DEL CHKDSK.TXT > NUL
CLS
ECHO.
echo  ERROR: EL ESPACIO DETECTADO EN LA DISQUETERA NO ES EL ESPERADO
ECHO.
PAUSE
GOTO INICIO

:FIN
DEL CHKDSK.TXT > NUL
CLS
ECHO.
echo  PROCESO FINALIZADO CORRECTAMENTE
ECHO.
PAUSE
GOTO INICIO


Saludos.
#2566
Algo como esto:

@echo off                                               
mode con cols=100 lines=100                                                                                 
echo                                !!!i1/)))$$$$$$)))/ii!                           
echo                          !i1))$$$$$$$$$$$$$$$$$$$$$$$$)11i!                     
echo                       i))$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$11!                 
echo                 i)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)!             
echo              i$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$/iii!       
echo             )$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$))ii))1     
echo          !!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$1  1/!!1)   
echo        )$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!11i/ii!)$))
echo      ))$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$i//i!))!$$$$i
echo     )$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)))$$$!!ii!!)$$$$)
echo    1$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$i   i)$$))$$$$)ii
echo   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!)$$$$$$$$$//ii11/)$$$
echo ii$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$1 11$$$$$$$$$$$$$$$$!!
echo $$$$$$$$$$$i!    !)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)  !$$$$$$$$$$$$$)!   
echo !$$$$$$$$)          //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$)$$$$$$$! 11$$$$$$$$$1     
echo )$$$$)ii              $$$$i  !!$$$$               )$$$i   $$$//                   
echo $$$$) !!ii            )$$$!  !!$$))               i$$$1   1$$!!                   
echo $$$$!i$$$$))          )$$$!  !!$$11               !$$$/   !$$ii                   
echo /$$$ ))) /$$$!        1$$$!  !!$$ii                11$$    /$$$                   
echo i$$$i!$$!1$$$i        1$$$!  !!$$!!                !!$$    !$$$                   
echo $$$$!   $$$$1        !)11     ))                    ))     111                   
echo ii$$$$$$$$$$i !!TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT   
echo    !i//))11   TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT   
echo.                                                                                 
echo        !))))T                                   T))))!            TTTTTTTTTTTT   
echo     !66ddddddd))                             )dddddddd6!!       TTdddddddddddd!!
echo    )ddd!     (ddd                           dd((     Tddd)      TTdd!           
echo    (d66      TdddT       !!       !!       !ddTT      6dd6      TTdd!           
echo    (ddd!               !!dd     !!dd!      !dd((                TTdd!           
echo    !dddd(TT            !!dd     !!dd!       6ddd6)!!            TTdd!           
echo        )(ddddddd(      !!dd     !!dd!         TT(6ddddd66!      TTddddddddddd(   
echo            !)ddddT     !!dd     !!dd!             !!T6ddd6      TTdd!           
echo    TT         ddd(     !!dd     !!dd!      TT!        )ddd!     TTdd!           
echo   !ddTT       66d6     !!dd     !!dd!      (d6        Tddd!     TTdd!           
echo    )ddd6T!!!T6ddd!       dd(   !66dd!       dddd)!  !)ddd(      TTdd()))))))))!!
echo     )dddddddddddT        )dddddd((dd!       !dddddddddd66       TTddddddddddddTT
echo      !!(6ddd6)!!          T6666T  ))          ))66dd6(T         !!))))))))))))!!
pause>nul
exit /b 0
#2567
Cita de: SλrκΥs en 28 Febrero 2008, 19:21 PM
Tampoco de shell-script? A los linuxeros nos vendría bien.

Saludos

Aqui:
http://foro.elhacker.net/gnulinux/shell_script-t12214.0.html
#2568
Cita de: Meta en 22 Diciembre 2008, 12:17 PM
¿Falta guía PowerShell 2 .net?
Aqui hay un poco :
http://www.windowstimag.com/N%C3%BAmerosanteriores/N%C3%BAmero134JulioAgosto2007/EnportadaPowershellb%C3%A1sicoII/tabid/504/Default.aspx

Me vendria bien aprender un poco de PowerShell.

#2569
Scripting / Re: Descubrimiento en comando for
23 Diciembre 2008, 04:58 AM
Con el
.
No serian 32 ?

Edito:

Tambien esto me funciona, con el caracter "°" :
FOR /F "TOKENS=3" %%° IN ('VER') DO (
ECHO.%%°
)

#2570
Scripting / Re: Descubrimiento en comando for
23 Diciembre 2008, 04:33 AM
Jeje, excelente Carlos, lo lei completo.

Tambien este funciona :
FOR /F "TOKENS=3" %%.  IN ('VER') DO (ECHO:%%.)


Saludos.