我的批处理文件在运行时抛出错误,但是当我在命令行中逐个手动运行命令时,我没有收到任何错误。这是批处理文件'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) 我不知道什么是错的。有人可以帮我解决这个谜语吗?
答案 0 :(得分:4)
您需要将批处理文件中的%%
加倍:
for /R c:\packages %%F in (*.msi) do set /A servername=%%~nxF