Codigo para el salto de linea en BATCH

Iniciado por Meine programmen, 2 Enero 2012, 22:28 PM

0 Miembros y 1 Visitante están viendo este tema.

Meine programmen

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.
REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!


Eleкtro

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








leogtz

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...
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Eleкtro

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