批处理文件抛出错误,但是当在命令行中单独运行每个命令时,它可以正常工作

时间:2012-01-28 03:30:05

标签: windows batch-file cmd

我的批处理文件在运行时抛出错误,但是当我在命令行中逐个手动运行命令时,我没有收到任何错误。这是批处理文件'test.bat'。

echo "test"
cd "c:\packages"
pause
for /R c:\packages %F in (*.msi) do set /A servername=%~nxF
pause
echo %servername%
pause

我收到此错误 - “~nxF此时未检测到”。

我从https://stackoverflow.com/a/1100466/1105556获得了示例代码 我只是试着在c:\ packages&中获取文件名。将值存储在'servername'变量中。文件夹中只有一个文件(.msi) 我不知道什么是错的。有人可以帮我解决这个谜语吗?

1 个答案:

答案 0 :(得分:4)

您需要将批处理文件中的%%加倍:

for /R c:\packages %%F in (*.msi) do set /A servername=%%~nxF