刪除資料夾中除特定前綴之外的所有文件

刪除資料夾中除特定前綴之外的所有文件

我有一個資料夾,裡面充滿了應用程式自動生成的檔案。那裡正在創建並儲存 csv 和 png 副檔名。我們需要刪除該資料夾中的所有文件,除了某些文件名稱以“abc-”開頭的 png 文件。該系統是 Windows Server 2012 r2 盒子,目標是每晚使用任務排程器透過批次檔完成此操作。

我嘗試過使用幾個預先編寫的不同腳本,但不會排除這些帶有前綴的 png 文件,只會刪除所有文件。我該怎麼辦呢?

答案1

你能嘗試一下powershell嗎?就像是:

$path = "C:\site\temp"
gci -Path $path | ? {!($_.Name -ilike "abc-*.png")} | % { Remove-Item -Path $_.FullName }

答案2

使用 Batch,你可以這樣做:

@Echo OFF 

For %%# In ("*.*") DO (
    If /I "%%~x#" EQU ".png" (
        (Echo "%%~n#"| Findstr "^abc-")1>nul 2>&1 || (
            Del /Q "%%~#"
        )
    )
)


Pause&Exit

我迭代所有檔案(具有副檔名),然後如果檔案具有“.png”副檔名,我會評估檔案名稱是否以“abc-”開頭以排除它。

請在測試前備份您的資料夾。

答案3

另外,請在測試之前備份您正在處理的資料夾的內容。

第一步:在相關資料夾下建立子目錄。
第二步:將要儲存的檔案移到該子目錄。
第三步:刪除資料夾中剩餘的所有內容。
第四步:將子目錄中的檔案移回資料夾。
第五步:刪除子目錄。
第六步:看看你有什麼。

下面是一個簡單的腳本。

REM C:\SCRIPTS\MOVERPNG.CMD
C:
ECHO OFF
CLS
CD \SITE\TEMP 
MD BAR  
MOVE /y ABC-*.PNG \SITE\TEMP\BAR  
DEL /y *.PNG  
DEL /y *.CSV  
CD BAR  
MOVE *.PNG C:\SITE\TEMP 
CD ..  
RD /q BAR
ECHO MOVERPNG has completed.
DIR *.* /P /O:N 

相關內容