Question

J'ai un fichier (directories.txt) avec des noms de répertoire, chacun sur une seule ligne et j'aime étendre la ligne

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

Dans mon script au nom de l'utilisateur exécutant le script. Cependant l'écho est exactement la même que la ligne et %USERNAME% ne se développe pas.

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

L'écho montre "C: \ Documents and Settings \% USERNAME% \ Mes documents" au lieu de C: \ Documents and Settings \ janco \ Mes documents

Toutes les idées?

Était-ce utile?

La solution

J'ai réussi à le faire en utilisant la substitution de variable:

SETLOCAL ENABLEDELAYEDEXPANSION

FOR /f "tokens=*" %%X IN (directories.txt) DO (
    SET DIR=%%X
    ECHO !DIR:%%USERNAME%%=%USERNAME%!
)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top