我有一個資料夾,其中包含大約 50 個不同的檔案(NAME1.jpg、NAME2.jpg、NAME3.jpg...)。
我有一個程式可以運行,將每個檔案分成大約 4 個不同的檔案並重新命名它們(NAME1-0.jpg、NAME1-1.jpg、NAME2-0.jpg、NAME2-1.jpg...)
我想製作一個 .bat 文件,該文件將運行並刪除所有不是 *-0.jpg 文件的文件。
到目前為止,我最接近的是這一行:
for %i in (*) do if not %i == "*.jpg" del "%i"
但這只是刪除了資料夾中的所有文件,包括我想要保存的 -0.jpg 。
有更好的線路可以使用嗎?
答案1
我想刪除所有不是 *-0.jpg 檔案的檔案。
我有一個程式可以運行,將每個檔案分成大約 4 個不同的檔案並重新命名它們(NAME1-0.jpg、NAME1-1.jpg、NAME2-0.jpg、NAME2-1.jpg...)
使用以下批次檔 (test.cmd):
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b NAME?-?.jpg') do (
rem get file name
set _fname=%%~ni
rem get last 2 characters of file name
set _last2=!_fname:~-2!
if [!_last2!] NEQ [-0] del "%%i"
)
例子:
F:\test>dir *.jpg
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test
08/12/2015 23:51 0 NAME1-0.jpg
08/12/2015 23:51 0 NAME1-1.jpg
08/12/2015 23:51 0 NAME2-0.jpg
08/12/2015 23:51 0 NAME2-1.jpg
4 File(s) 0 bytes
0 Dir(s) 1,776,919,613,440 bytes free
F:\test>test
F:\test>dir *.jpg
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test
08/12/2015 23:51 0 NAME1-0.jpg
08/12/2015 23:51 0 NAME2-0.jpg
2 File(s) 0 bytes
0 Dir(s) 1,776,919,613,440 bytes free