Pregunta

Tengo un archivo (directories.txt) con los nombres de directorio, cada uno en una sola línea y me gustaría ampliar la línea

C:\Documents and Settings\%USERNAME%\My Documents

En mi script para el nombre real del usuario que ejecuta el script. Sin embargo el eco sale exactamente igual que la línea y %USERNAME% no se expande.

FOR /f "tokens=*" %%X IN (directories.txt) DO (
    ECHO %%X
)

El eco muestra "C: \ Documents and Settings \% USERNAME% \ Mis documentos" en lugar de C: \ Documents and Settings \ janco \ Mis documentos

¿Alguna idea?

¿Fue útil?

Solución

Me las he arreglado para hacer esto utilizando la sustitución de variables:

SETLOCAL ENABLEDELAYEDEXPANSION

FOR /f "tokens=*" %%X IN (directories.txt) DO (
    SET DIR=%%X
    ECHO !DIR:%%USERNAME%%=%USERNAME%!
)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top