【发布时间】:2019-06-16 01:02:43
【问题描述】:
我有一个简单的脚本(它在 Windows 服务器上运行良好) 在 Windows 10 上运行它会产生一个额外的结果。 该脚本基本上执行以下操作。 它会查找所有带有 .pak 扩展名的文件,并确保它们也有一个 .bod 文件。 所以例如 file1.pak 应该有一个 file1.bod
当我运行脚本时
echo off
for /f %%f in ('dir /b /s /a:-d *.pak') do (
if not exist %%~dpnf.bod echo "%%~dpnf.pak has no bod"
)
我在 windows10 中得到以下结果,但我预计没有结果
C:\temp\pakbodtest>echo off
"C:\temp\pakbodtest>echo.pak has no bod"
这里的这一行是出乎意料的 有人知道怎么解决吗?
"C:\temp\pakbodtest>echo.pak has no bod"
【问题讨论】:
-
无法复制(在这里工作正常)。 (除了你可以简化为
echo "%%~ff has no bod"并且你应该使用delims=能够处理带空格的文件名) -
我会把它改成
@For /F %%A In ('Dir /B/S/A-D *.pak 2^>Nul') Do @If Not Exist "%%~dpnA.bod" Echo "%%~dpnA.pak has no bod" -
我个人会在这种情况下使用
FOR /R。FOR /R %%G in (*.pak) do IF NOT EXIST "%%~G.bod" echo "%%G" has no bod -
你每次都明白吗?您的目录中有哪些文件?也许一个符号链接在欺骗你?
-
@stephan 2^>Nul 似乎在这里为我工作
标签: batch-file for-loop windows-10 echo