2009-08-27 14 views
2

J'ai un fichier (directories.txt) avec des noms de répertoire, chacun sur une seule ligne et je tiens à élargir la gammefichier batch pour/f extension

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

Dans mon script au nom d'utilisateur exécutant le script . Cependant, l'écho sort exactement comme la ligne et %USERNAME% ne s'étend 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?

Répondre

2

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%! 
) 
+0

oui, ça marche! Merci – Janco

Questions connexes