我最近在一个.cmd文件中添加了类似以下内容的一行:
for /f %%f in ('dir /b .\directory\*.sql') DO sqlcmd -b -o ".\directory\output\%%f.txt" -i ".\directory\%%f"
最初我只使用了%f,在命令行上运行时它可以正常工作,但在整个文件中运行时就不行了。当我切换到%%f时,它在文件中工作。只是想知道有什么不同。
发布于 2013-01-25 04:23:36
在DOS中,您不能在命令行上使用环境变量,只能在批处理文件中使用环境变量,在批处理文件中,它们使用%
符号作为分隔符。如果您希望在批处理文件中使用文字%
符号,例如在echo
语句中,则需要将其加倍。
这延续到了Windows NT,它允许在命令行上使用环境变量,但是为了向后兼容,您仍然需要在.cmd文件中使用双倍的%
符号。
https://stackoverflow.com/questions/14509652
复制相似问题