batch file抛出错误,但是当每个命令在命令行中单独运行时,它工作正常

我的batch file在运行时出现错误,但是当我在命令行中手动逐个运行命令时,则不会出现错误。 这是batch file'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'variables的值。 只有一个文件(.msi)在文件夹中,我不能找出什么是错的。 有人能为我解开谜吗?

您需要在批处理文件中加倍%%

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