Recentemente, incluí uma linha semelhante a esta em um arquivo .cmd:
for /f %%f in ('dir /b .\directory\*.sql') DO sqlcmd -b -o ".\directory\output\%%f.txt" -i ".\directory\%%f"
Originalmente, eu tinha usado apenas% f e funcionaria bem quando executado na linha de comando, mas não quando executado através do arquivo. Quando mudei para %% f, funcionou no arquivo. Apenas me perguntando qual é a diferença.
batch-file
cmd
Tyler
fonte
fonte
No DOS, você não podia usar variáveis de ambiente na linha de comando, apenas em arquivos em lote, onde eles usavam o
%
sinal como um delimitador. Se você quisesse um%
sinal literal em um arquivo em lote, por exemplo, em umaecho
declaração, você precisava dobrá-lo.Isso foi transportado para o Windows NT, que permitia variáveis de ambiente na linha de comando; no entanto, para compatibilidade com versões anteriores, você ainda precisa dobrar seus
%
sinais em um arquivo .cmd.fonte