如何在批处理脚本中忽略 "move" 命令的 8.3 文件名?

How to ignore 8.3 filename for "move" command in batchscript?

我要移动很多xml-文件,命名如下:

在我的批处理文件中,有这一行:

移动 C:\source\F01*.xml C:\target\F01\

现在我遇到了问题,例如某些文件具有不同的 8.3 文件名

"F030390114545001_901.XML" 的名称为 "F01FCF~1.XML",因此该文件也被移动到目录 "F01".

我的命令 "fsutil 8dot3name strip" 没用,因为批处理是 运行 在 2003 服务器上。

是否有任何类型的解决方法或替代命令来解决此问题?

for /f %%a in ('dir /b /a:-d "c:\source"^| findstr /i /b "F01"^|findstr /i /e ".xml"') do (
   move "%%~fa" "C:\target\F01\"
)

这个?

编辑

findstr 过滤可以用一个表达式完成 -

findstr /beri "f01.*xml"

所以

for /f %%a in ('dir /b /a:-d "c:\source"^| findstr /beri "f01.*xml"') do (
   move "%%~fa" "C:\target\F01\"
)