1

我必须移动很多 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 文件名

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

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

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

4

1 回答 1

1
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\"
)
于 2015-04-30T08:08:55.977 回答