Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Перемещение файлов (jpg) по их количеству (http://forum.oszone.net/showthread.php?t=205720)

dark-------13 27-04-2011 09:13 1666443

Перемещение файлов (jpg) по их количеству
 
Здравствуйте,

Подскажите пожалуйста можно ли на bat реализовать следующее:

Имеем папку PICS, в ней много папок с файлами jpg Пример: ( D:\PICS\2011 D:\PICS\2010 D:\PICS\1 ), и в каждой папке разное количество файлов *.jpg, необходимо проверить сколько файлов jpg в каждой папке если 500 файлов jpg, то нужно в разделе D:\NEW\ создать папку с именем исходной папки (в которой были файлы) и уже в ней создать новую, далее перенести в нее эти 500 штук файлов jpg Пример: D:\NEW\2011\1\, далее заново проверяем папки, и ведем поиск если опять набралось 500 опять переносим но уже во 2 папку в Пример: D:\NEW\2011\2, если файлов меньше 500 то переносим оставшиеся также в новую папку в разделе D:\new\2011\ и так со всеми папками в папке PICS.

Заранее спасибо.

amel27 27-04-2011 11:11 1666510

Код:

@echo off
SETLOCAL EnableDelayedExpansion

set $SRC=D:\PICS
set $DST=D:\NEW

for /d %%a in ("%$SRC%\*") do (set/a $n=-1
for /f "delims=" %%b in ('dir/b/s/a-d "%%a\*.jpg"2^>nul') do (set/a $n+=1
set/a $m=1+!$n!/500
if not exist "%$DST%\%%~na\!$m!" md "%$DST%\%%~na\!$m!"
move/-y "%%b" "%$DST%\%%~na\!$m!\">nul
))


El Sanchez 27-04-2011 13:37 1666588

amel27, надо поменять местами выделенное, а то не отработает: :wink:
Код:

for /d %%a in ("%$SRC%\*.jpg") do (set/a $n=-1
for /f "delims=" %%b in ('dir/b/s/a-d "%%a\*"2^>nul') do (set/a $n+=1


amel27 27-04-2011 16:20 1666684

El Sanchez, тем страннее, что стоит "решено"


Время: 03:19.

Время: 03:19.
© OSzone.net 2001-