从特定的多个文件创建文件夹,然后将特定的多个文件移动到其中

从特定的多个文件创建文件夹,然后将特定的多个文件移动到其中

我有一些文件

07-01.jpg
07-02.jpg until
07-48.jpg


37-01.jpg
37-02.jpg
37-03.jpg until37-48.jpg

我想创建文件夹

07, 08.... ,37

然后移动多个文件

07-01.jpg, 07-02.jpg, 07-03.jpg into folder 07
08-01.jpg, 08-02.jpg, 08-03.jpg into folder 08
37-01.jpg, 37-02.jpg, 37-03.jpg into folder 37
etc

批处理脚本应该如何实现这一目标?

谢谢

答案1

不需要批处理文件:

for %F in (*-*.jpg) do @for /f "delims=-" %A in ("%F") do @md "%A" 2>nul&move /y "%F" "%A" >nul

如果在批处理脚本中使用,则将百分比加倍。

答案2

这应该有效:

@echo off
setlocal enableextensions enabledelayedexpansion
rem parameter 1: first prefix (e.g 7)
rem parameter 2: last prefix (e.g 37)
rem parameter 3: max counter (e.g. 48)
FOR /L %%A IN (%1,1,%2) DO (
    rem arrange the padding
    set pre=0%%A
    set pre=!pre:~-2!
    rem create the folder
    mkdir !pre!
    FOR /L %%B IN (1,1,%3) DO (
        rem arrange the padding
        set num=0%%B
        set num=!num:~-2!
        rem file name
        set curr_file=!pre!-!num!.jpg
        rem ECHO !curr_file!
        move !curr_file! !pre!
    )
)

保存在批处理文件中(例如store_files.bat)并使用适当的参数调用它:

store_files.bat 7 37 48

-

编辑:dbenham 的解决方案更加优雅。

相关内容