用於移動與花藥檔案名稱部分相符的檔案的腳本

用於移動與花藥檔案名稱部分相符的檔案的腳本

我正在嘗試弄清楚如何編寫一個腳本來獲取以下文件:

img123
img123back
img124
img125
img125back
img126
img127

我需要將所有與帶有“back”字樣的文件具有相同編號的文件移動到單獨的資料夾中。結果範例:

img123
img123back
img125
img125back

答案1

您可以使用對於 /f迭代的輸出目錄針對來源目錄的命令。您可以使用一些條件如果邏輯和 for 循環變數替換來確認具有單一字串「back」的檔案存在,如果存在,則複製該檔案以及具有相同名稱的檔案減去相應的字串。

@ECHO ON

SET "srcPath=C:\Source\Path"
SET "destPath=C:\Copy\Path"
SET "keyword=back"

FOR /F "TOKENS=*" %%A IN ('DIR /B /A-D "%srcPath%\*"') DO (
    IF EXIST "%%~DPA%%~NA%keyword%%%~XA" XCOPY /Y /F "%%~DPA%%~NA%keyword%%%~XA" "%destPath%\" & XCOPY /Y /F "%%~FNXA" "%destPath%\"
    )
PAUSE
EXIT

更多資源

  • 對於/F
  • 目錄
  • 如果

  • 批量替換(FOR /?)

    此外,FOR 變數引用的替換也得到了增強。現在您可以使用以下可選語法:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • 複製

  • 重定向

相關內容