Test Foro de elhacker.net SMF 2.1

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

@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

@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 (DOS) [Seleccionar]
@echo off
Set "Variable=%temp%\attrib.txt"
ATTRIB "%SystemDrive%\Users\%USERNAME%\Desktop\*" > "%Variable%"
type "%variable%"
pause >nul
Exit


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 (bash) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
set newline=^& echo.
set final=
for /f "tokens=*" %%_ in ('dir /b') do set "final=!final!%%_!newline!!newline!"
echo %final%


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
Cita de: Leo Gutiérrez. en  3 Enero 2012, 05:00 AM
cmd.exe sigue escondiendo algunas peculiaridades:

Código (bash) [Seleccionar]

set newline=^& echo.



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