2 votos

Escribir multi-variable de la línea .txt (CMD, NO .bat)

Estoy con éxito la división de %PATH% en varias líneas, de esta

set t=%PATH:;=^&echo.%

de esta muestra de cada ruta en la nueva línea de muy bien, justo como yo quiero:

echo %t%

Sin embargo, cuando quiero escribir variable en un archivo

echo %t% >paths.txt

sólo la última línea se escriben en el archivo.

¿Qué estoy haciendo mal?

Actualización

Resulta set t=%PATH:;=^&echo.% comando no sustituye ; personajes con los saltos de línea (como me dijeron), pero relplces con &echo.‌​ comando que más adelante se ejecuta.

2voto

DavidPostill Puntos 30286

¿Qué estoy haciendo mal?

Usted necesita para rodear la última echo con ( y )

(echo %t%) > paths.txt

Corregido el archivo de proceso por lotes (de prueba.cmd):

@echo off
setlocal
set t=%PATH:;=^&echo.%
echo %t%
(echo %t%) > paths.txt
:endendlocal

Ejemplo de uso:

> test
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\apps\WSCC\Sysinternals Suite
C:\apps\WSCC\NirSoft Utilities
C:\apps\Calibre\
C:\apps\Git\cmd
C:\apps\Git\mingw64\bin
C:\apps\Git\usr\bin
C:\apps\nodejs\
C:\Users\DavidPostill\AppData\Roaming\npm
> type paths.txt
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\apps\WSCC\Sysinternals Suite
C:\apps\WSCC\NirSoft Utilities
C:\apps\Calibre\
C:\apps\Git\cmd
C:\apps\Git\mingw64\bin
C:\apps\Git\usr\bin
C:\apps\nodejs\
C:\Users\DavidPostill\AppData\Roaming\npm

Una solución más simple

Esta solución no requiere ningún tipo de soportes en la ruta de escape.

prueba.cmd:

@echo off
setlocal
for %%i in ("%path:;=";"%") do (
  echo %%~i >> paths.txt
)
:endendlocal

Y desde la línea de comandos:

for %i in ("%path:;=";"%") do echo %~i >> paths.txt

Leer Más

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: