Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meine programmen en 2 Enero 2012, 22:28 pm



Título: Codigo para el salto de linea en BATCH
Publicado por: Meine programmen en 2 Enero 2012, 22:28 pm
Tengo un problema con el comando FOR. Mi idea era usarlo para crear una variable con el resultado del comando ATTRIB. Primero pensé usar
Código:
@ECHO OFF
cd "C:\Users\%USERNAME%\Desktop\"
for /f "tokens=*" %%a in ('ATTRIB') do (
set "v=%%a"
)
echo %v%
pause
exit
Pero con esto la variable solo contiene la primera linea del resultado. Investigué algo más, y se me ocurrió usar
Código:
@ECHO OFF
cd "C:\Users\%USERNAME%\Desktop\"
for /f "tokens=* delims=%AQUI EL CODIGO PARA SALTO DE LINEA%" %%a in ('ATTRIB') do (
set "v=%%a"
)
echo %v%
pause
exit
Para convertir las lineas en segmentos. Pero al buscar este codigo lo unico que encontré fue "$_" en un articulo sobre cómo personalizar el prompt de las ventanas de MS DOS, pero ya probé y no funciona.


Título: Re: Codigo para el salto de linea en BATCH
Publicado por: Eleкtro en 3 Enero 2012, 00:02 am
hmmm...

Es que el output del ATTRIB usa avances de línea :/, No se si se puede guardar los saltos de línea en una variable, nunca he visto a nadie hacerlo, lo he intentado usando More para expandir los saltos de linea en la variable pero nada, tú problema me queda un poco grande la verdad...

Pero bueno, te propongo una alternativa que funciona:

Código
  1. @echo off
  2. Set "Variable=%temp%\attrib.txt"
  3. ATTRIB "%SystemDrive%\Users\%USERNAME%\Desktop\*" > "%Variable%"
  4. type "%variable%"

Saludos


Título: Re: Codigo para el salto de linea en BATCH
Publicado por: leogtz en 3 Enero 2012, 05:00 am
cmd.exe sigue escondiendo algunas peculiaridades:

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set newline=^& echo.
  4. set final=
  5. for /f "tokens=*" %%_ in ('dir /b') do set "final=!final!%%_!newline!!newline!"
  6. echo %final%
  7.  

Todo esto creo a un mal diseño...


Título: Re: Codigo para el salto de linea en BATCH
Publicado por: Eleкtro en 3 Enero 2012, 05:14 am
cmd.exe sigue escondiendo algunas peculiaridades:

Código
  1. set newline=^& echo.
  2.  


Increible, vaya "truco"! Todo un maestro, esto me lo apunto xDDDDD