file batch per l'espansione / f
-
20-09-2019 - |
Domanda
Ho un file (directories.txt
) con i nomi delle directory, ciascuno su una singola linea e mi piace espandere la linea
C:\Documents and Settings\%USERNAME%\My Documents
Nel mio script per il nome reale dell'utente che esegue lo script. Tuttavia l'eco esce esattamente la stessa della linea e %USERNAME%
non si espande.
FOR /f "tokens=*" %%X IN (directories.txt) DO (
ECHO %%X
)
L'eco mostra "C: \ Documents and Settings \% username% \ Documenti", invece di C: \ Documents and Settings \ Janco \ Documenti
Tutte le idee?
Soluzione
Sono riuscito a fare questa sostituzione variabile utilizzando:
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "tokens=*" %%X IN (directories.txt) DO (
SET DIR=%%X
ECHO !DIR:%%USERNAME%%=%USERNAME%!
)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow