2015-04-30 70 views
1

我要搬到很多XML的文件,命名爲如下的:如何忽略批處理腳本中「移動」命令的8.3文件名?

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

在我的批處理文件,有這樣一行:

招C:\源\ F01 * .XML C:\目標\ F01 \

現在我有問題,有些文件有不同的8.3文件名,例如

「F030390114545001_901.XML」的名稱爲「F01FCF〜1.XML」,因此該文件也移動到目錄「F01」中。

在我的情況下,命令「fsutil 8dot3name strip」是無用的,因爲批處理正在2003服務器上運行。

是否有解決此問題的任何類型的解決方法或替代命令?

回答

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\" 
) 

這個?

EDIT

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\" 
) 
+1

我會明確地匹配擴展點使用'FINDSTR/XRI「F01。 * \。XML「' – dbenham