
我有一個資料夾,裡面充滿了應用程式自動生成的檔案。那裡正在創建並儲存 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