我有幾個文件的名稱,如「Axis_Master Group_First_Report_201312.xlsx」, Axis_Master Group_second_Report_201312.xlsx。 我需要一個腳本來讀取文件名並根據文件名創建文件夾並將文件移動到該文件夾中。 在上面的例子中,我需要將第一個文件移動到名稱爲Axis的文件夾中,並且在Axis中,它應該先移到文件夾中。 對於第二個文件,它需要移動到同一個Axis文件夾,但它應該移動到一個新的文件夾「秒」。 請幫忙。 在此先感謝。批處理/電源外殼腳本基於文件名和移動文件創建文件夾
1
A
回答
0
此代碼將所有匹配"Axis_Master Group_$1_$2.$3"
模式的文件移動到文件夾axis\$1
中,並將其重命名爲$2.$3
。
@echo off
md axis > Nul <&2
for %%a in ("Axis_Master Group_*_*.*") do (
call :refolder "%%a"
)
exit /b
:refolder
set fileName=%~n1
set fileName=%fileName:Axis_Master Group_=%
for /f "delims=_ tokens=1*" %%a in ("%fileName%") do (
md axis\%%a > Nul <&2
move /y %1 axis\%%a\%%b%~x1 > Nul <&2
)
exit /b
2
我承擔所有的文件匹配*_*_*_*.xlsx
,並要使用_
作爲分隔符的第一和第三令牌。
第一個FOR只是迭代所有匹配的文件。隨後的FOR/F解析出第一個和第三個標記。它永遠不會反覆嘗試多次創建文件夾。我只是通過將stderr重定向到nul來隱藏任何錯誤消息。
@echo off
for %%F in (*_*_*_*.xlsx) do for /f "tokens=1,3 delims=_" %%A in ("%%F") do (
md "%%A\%%B" 2>nul
move "%%F" "%%A\%%B"
)
相關問題
- 1. 基於批處理的文件/文件夾創建
- 2. 創建基本HTML文件和文件夾前的批處理文件
- 3. 使用批處理文件創建文件夾和移動文件
- 4. 批處理腳本 - 創建.XML文件 - 基於文件夾中的每個.DWG文件的名稱
- 5. 批處理腳本:根據源文件夾名稱將文件移動到文件夾
- 6. 使用批處理腳本在文件名中移動文件
- 7. 基於文件名和目錄創建文本文件 - 批次
- 8. 創建Windows批處理文件以創建文件夾/文件
- 9. 批處理文件Filename創建文件夾和txt文件
- 10. 基於部分文件名批量創建文件夾並將文件移動到該文件夾中
- 11. 遞歸通過文件夾用批處理腳本移動和移動六天舊文件到子文件夾
- 12. 未創建電源外殼文件
- 13. 批處理腳本 - 文件到文件夾 - 另外
- 14. 創建批處理文件夾和子文件夾
- 15. 批處理腳本重命名文件在多個文件夾
- 16. 批處理腳本 - 基於文件夾中的每個.PNG文件創建.XML文件
- 17. 批量創建基於第一部分文件夾的文件夾,將文件移動到該文件夾中
- 18. 使用批處理文件創建文件夾名稱
- 19. bash腳本創建文件夾和移動文件
- 20. linux的bash腳本來創建文件夾和移動文件
- 21. 批處理腳本從文件夾啓動批處理xml文件
- 22. 用於創建新文件夾的外殼腳本
- 23. 批處理腳本文本文件輸入組織文件夾
- 24. 將XML文件移動到相應文件夾的批處理腳本 - 文件夾名稱寫入XML
- 25. 重命名批處理腳本,然後將文件從1個文件夾移動到其他文件夾。
- 26. 批處理腳本移動和重命名文件
- 27. 重命名和移動文件的批處理腳本
- 28. 批處理文件 - 基於父母的姓名和(子)文件夾(S)名字
- 29. 創建文件外殼腳本
- 30. 批處理腳本,從FTP文件夾
謝謝。這有幫助。得到它與這個腳本一起工作。 @echo off SETLOCAL SET「sourcedir = c:\ Src」 PUSHD%sourcedir% for/f「tokens = 1-3 delims = _」%% i in('dir/b/ad * _ *。 xlsx')do( mkdir「%% i」> nul mkdir「%% i/%% j」> nul mkdir「%% i/%% j/%% k」> nul move「%% i_ * .xlsx「」%% i/%% j/%% k「> NUL ) –