Arquivo em lote para expansão/f
-
20-09-2019 - |
Pergunta
Eu tenho um arquivo (directories.txt
) com nomes de diretórios, cada um em uma única linha e eu gosto de expandir a linha
C:\Documents and Settings\%USERNAME%\My Documents
No meu script para o nome de usuário real executando o script. No entanto, o eco sai exatamente o mesmo que a linha e %USERNAME%
não se expande.
FOR /f "tokens=*" %%X IN (directories.txt) DO (
ECHO %%X
)
O eco mostra "C: documentos e configurações %nome de usuário% meus documentos" em vez de c: documentos e configurações Janco Meus documentos
Alguma ideia?
Solução
Consegui fazer isso usando substituição variável:
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "tokens=*" %%X IN (directories.txt) DO (
SET DIR=%%X
ECHO !DIR:%%USERNAME%%=%USERNAME%!
)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow