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?

Foi útil?

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
scroll top