问题
I have a file (directories.txt
) with directory names, each on a single line and I like to expand the line
C:\Documents and Settings\%USERNAME%\My Documents
In my script to the real user name running the script. However the echo comes out exactly the same as the line and %USERNAME%
does not expand.
FOR /f "tokens=*" %%X IN (directories.txt) DO (
ECHO %%X
)
The echo shows "C:\Documents and Settings\%USERNAME%\My Documents" instead of C:\Documents and Settings\ janco \My Documents
Any ideas?
回答1:
I've managed to do this using variable substitution:
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "tokens=*" %%X IN (directories.txt) DO (
SET DIR=%%X
ECHO !DIR:%%USERNAME%%=%USERNAME%!
)
来源:https://stackoverflow.com/questions/1339699/batch-file-for-f-expansion