我有这样命名的文件,分为三个部分,用连字符分隔。
Motorcycle-001-01.jpg
Motorcycle-001-02.jpg
Motorcycle-001-03.jpg
Motorcycle-002-01.jpg
Motorcycle-002-02.jpg
Motorcycle-002-03.jpg
文件名的第一部分表示竞赛,即摩托车的图片。第二部分是系列,而第三部分是系列中的单个图片。
我有一个名为Motorcycles的完整目录,其中有6000张左右的图片以这种方式命名,一直到Motorcycle-238-150.jpg
我的问题是,是否有批处理文件或脚本可用于使用序列号或文件的第二部分对这些文件进行排序。我想将我的摩托车目录中的所有文件移动到摩托车目录中的子目录中。例如,我想将Motorcycle-001-01.jpg通过Motorcycle-001-150.jpg移动到目录001.然后Motorcycle-002-01.jpg到Motorcycle-002-135.jpg进入目录002并且等等。
答案 0 :(得分:0)
@Echo OFF
:: By Elektro H@cker
REM Series:
REM If you type "1" it's equals to serie "001"
REM If you type "10" it's equals to serie "010"
REM If you type "100" it's equals to serie "100"
REM You can change that at the pattern multi-comparisions
:: Introduces a number of serie...
:SELECT
Set /P "Serie=Select the serie to move >>"
:: Basic error handling
Echo "%SERIE%" | FINDSTR /I "[a-z]" 1>NUL && (
Echo [-] Type only nums...
Set "Serie="
GOTO:SELECT
)
:: Set the correct pattern for selected serie
IF %SERIE% LEQ 999 IF %SERIE% GTR 99 (Set "PATTERN=%SERIE%")
IF %SERIE% LEQ 99 IF %SERIE% GTR 9 (Set "PATTERN=0%SERIE%")
IF %SERIE% LSS 999 IF %SERIE% LSS 99 IF %SERIE% LEQ 9 (Set "PATTERN=00%SERIE%")
:: Makes the serie directory
MKDIR ".\%PATTERN%\" 2>NUL
:: Move all the files of the serie to the folder
For /F "Tokens=*" %%@ in ('DIR /B "Motorcycle-%PATTERN%*"') do (
Move "%%@" ".\%PATTERN%\" >NUL
Echo [+] Moved: %%@
)
Pause&Exit