批次腳本:將檔案移至具有相似名稱的相應資料夾中

批次腳本:將檔案移至具有相似名稱的相應資料夾中

我正在嘗試建立無紙化診所並以電子方式儲存所有患者資料。我已經創建了8000個資料夾(1 - 8000),現在需要將大約16000個.pdf文件移動到相應的文件夾中,例如“202醫療救助卡”、“202醫生轉診”、“202病假條”需要移動到資料夾“202”。所有文件都儲存在一個資料夾中。

先感謝您。

答案1

如果你的情況是簡單,那麼您應該繼續發出類似以下命令的作業系統命令:

MOVE 202* 202\

等等。

答案2

擴展此問題的其他當前答案:

  1. 在純文字編輯器(例如Windows記事本)中開啟一個新的文字文件並複製以下批次指令:

    FOR /L %%G IN (1,1,8000) DO (
        MOVE ".\%%G *" ".\%%G\"
        )
    
  2. 將此文件另存為 ex. sort_files.bat

  3. 將此.bat文件放在與您要排序的文件相同的資料夾中。

  4. sort_files.bat透過雙擊它或從命令列執行它來運行。

注意事項

  • .\%%G *假定檔名格式為 ex. 202 Medical Aid Card。如果您錯過了空格(即.\%%G*),您的檔案將無法正確排序,並且您最終將獲得一個巨大的頭痛(所以不要這樣做!=P)。

  • .\%%G\假設您的現有資料夾與您的檔案位於同一目錄中。如果不是,請替換.為資料夾目錄的實際路徑(例如C:\path\to\folder\directory\%%G\)。

  • 在表達式 中(1,1,8000),最後一個值(例如8000)決定總共處理多少個循環。您可能需要考慮減少(1,1,8000)到可管理的數量(例如(1,1,10)),以便在提交之前測試您的批次文件(並檢查任何結果)(1,1,8000)


筆記

  • %%G是用於循環計數的批次變數。處理循環時它會被替換為數字。於是就MOVE ".\%%G *" ".\%%G\"變成前任了。MOVE ".\1 *" ".\1\"

  • 在命令中MOVE ".\%%G *" ".\%%G\"

    • 從技術上講,只有當路徑包含空格(例如".\%%G *")時才需要引號,但為了保持一致性,在來源路徑 ( .\%%G *) 和目標路徑 ( .\%%G\) 中都使用引號。

    • .是「目前目錄」的簡寫方式。

    • *是一個通配符。所以前。.\%%G *翻譯為「目前目錄中以%%G(例如1)開頭的任何文件,後面跟著空格和任何其他字元(*)」。


參考

相關內容