我有一个文件夹-PHOTOS
,其结构如下:
image_001.png
image_002.png
image_003.png
image_004.png
image_005.png
image_006.png
image_007.png
and more.....
我想将PHOTOS
文件夹中的前两个图像移动到一个子文件夹(例如:PHOTOS_SUB001
)中,如果PHOTOS
文件夹中的图像数目为3,则将所有剩余图像移动图片到最后一个子文件夹。
在我的示例中:
image_001
和image_002
将移至PHOTOS_SUB001
文件夹
image_003
和image_004
将被移至PHOTOS_SUB002
文件夹
image_005
,image_006
和image_007
将被移至PHOTOS_SUB003
文件夹
答案 0 :(得分:0)
:: Q:\Test\2018\12\14\SO_53784108.cmd
@Echo off & SetLocal EnableDelayedExpansion
set "Base=A:\PHOTOS"
PushD "%Base%" || (Echo can't find Base:%Base% &Pause&Goto :Eof)
:: get Total files
For /f %%A in ('dir /B *.png ^|find /c ".png"') Do set "Total=%%%A"
Set Cnt=0
For /f "delims=" %%A in ('dir /B *.png') Do (
Set /A "Cnt+=1,Rest=Total-Cnt+(Cnt%%2),DstNum=1000+(Cnt+1)/2"
Set "Dest=%Base%\PHOTOS_SUB!DstNum:~-3!"
MD "!Dest!" 2>Nul
If !Rest! lss 2 (
Move "%Base%\*.png" "!Dest!\" >Nul
Goto :End
) else (
Move "%%A" "!Dest!\" >Nul
)
)
:End
PopD
Goto :Eof
运行批次后的样本树:
> Tree \ /F
└───PHOTOS
├───PHOTOS_SUB001
│ image_001.png
│ image_002.png
│
├───PHOTOS_SUB002
│ image_003.png
│ image_004.png
│
└───PHOTOS_SUB003
image_005.png
image_006.png
image_007.png