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



我必须移动很多xml文件,命名如下:

  • F010199004524001_904.XML
  • F010199805946001_737.XML
  • F010199904725001_611.XML
  • F030390114543001_901.XML
  • F030390114544001_257.XML
  • F030390114545001_901.XML

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

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

现在我有一个问题,有些文件有一个不同的8.3-filename,例如

"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:targetF01"
)

这个?

编辑

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

findstr /beri "f01.*xml"

所以

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

相关内容

  • 没有找到相关文章

最新更新