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.
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:
@echo off
Set "Variable=%temp%\attrib.txt"
ATTRIB "%SystemDrive%\Users\%USERNAME%\Desktop\*" > "%Variable%"
type "%variable%"
pause >nul
Exit
Saludos
cmd.exe sigue escondiendo algunas peculiaridades:
@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...
Cita de: Leo Gutiérrez. en 3 Enero 2012, 05:00 AM
cmd.exe sigue escondiendo algunas peculiaridades:
set newline=^& echo.
Increible, vaya "truco"! Todo un maestro, esto me lo apunto xDDDDD