Nenhum arquivo de lote é necessário:
for %F in (*-*.jpg) do @for /f "delims=-" %A in ("%F") do @md "%A" 2>nul&move /y "%F" "%A" >nul
Duplique as porcentagens se usado em um script em lote.
Eu tenho alguns arquivos
07-01.jpg
07-02.jpg until
07-48.jpg
37-01.jpg
37-02.jpg
37-03.jpg until37-48.jpg
Eu quero criar pasta
07, 08.... ,37
e, em seguida, mova vários arquivos
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
como seria um script em lote para conseguir isso?
obrigado
Nenhum arquivo de lote é necessário:
for %F in (*-*.jpg) do @for /f "delims=-" %A in ("%F") do @md "%A" 2>nul&move /y "%F" "%A" >nul
Duplique as porcentagens se usado em um script em lote.
Isso deve funcionar:
@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!
)
)
Salvar em um arquivo de lote (por exemplo, store_files.bat
) e invocá-lo com parâmetros apropriados:
store_files.bat 7 37 48
-
Edit: a solução de dbenham é mais elegante.