Niedawno dołączyłem wiersz podobny do tego w pliku .cmd:
for /f %%f in ('dir /b .\directory\*.sql') DO sqlcmd -b -o ".\directory\output\%%f.txt" -i ".\directory\%%f"
Początkowo używałem tylko% f i działałby dobrze, gdy byłby uruchamiany z wiersza poleceń, ale nie działałby po uruchomieniu pliku. Kiedy przełączyłem się na %% f, zadziałało w pliku. Zastanawiam się tylko, jaka jest różnica.
batch-file
cmd
Tyler
źródło
źródło
W DOS nie można było używać zmiennych środowiskowych w linii poleceń, tylko w plikach wsadowych, w których używali
%
znaku jako separatora. Jeśli chciałeś mieć dosłowny%
znak w pliku wsadowym, np. Wecho
wyciągu, musiałeś go podwoić.%
Przeniesiono to do systemu Windows NT, który zezwalał na zmienne środowiskowe w wierszu poleceń, jednak w celu zachowania zgodności wstecznej nadal trzeba podwoić znaki w pliku .cmd.źródło