Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как собрат файлы в папку по 20мб каждый?

Ответить
Настройки темы
CMD/BAT - [решено] Как собрат файлы в папку по 20мб каждый?

Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!

Прошу помочь в создании батника который должен выполнять следующие действия:

cобрат файлы в папку по 20мб каждый или менше но не выше с помощю (bat ника).
Есть файлы *.xxx разного размера 01.xxx,02.xxx,03.xxx.... 0n.xxx; надо их сотироват по папкам по 20мб. (последователност имен должно сохранятся!)





Буду благодарен за любую помощь!
С Уважением Акмал

Отправлено: 19:28, 13-03-2012

 

Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


muqanna,

Код: Выделить весь код
@echo off

for /f "tokens=*" %%i in (' dir /b "C:\Source Dir\*.xxx" ') do if %%~zi leq 20971520 move "%%i" "C:\Destination Dir"

Отправлено: 19:37, 13-03-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


ne jdal !!! proverim!

Foreigner
извините а он циклический будет работат?
Если обем на 200 мб должно 10 папок, ДА?

Отправлено: 19:40, 13-03-2012 | #3


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner

пишет : не удается найти указанный файл
там где сравнения размера if %%~zi leq 20971520 там место размера (%%~zi) пустата?
if leq 20971520 что делать?

Отправлено: 20:08, 13-03-2012 | #4


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


muqanna,
Извиняюсь, может я не правильно понял? Нужно создавать папки и в них перемещать файлы, но так, что бы размер папки не превышал 20Mb? Если так, то:

Последний раз редактировалось Foreigner, 13-03-2012 в 20:27.


Отправлено: 20:08, 13-03-2012 | #5


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


А Я понял не правилно изложил проблему там файлы с размерами 1мб, 100кб, 15мб, итд их надо собрат в сумме 20 мб. Пример: 30 файла сумма >= 20мб эту имел виду!(PARDONAMA)

Отправлено: 20:14, 13-03-2012 | #6


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


muqanna, попробуйте этот вариант:
Код: Выделить весь код
@echo off
setlocal

pushd "C:\Source Dir"
set "dest=1"
for /f "tokens=*" %%i in (' dir /b *.xxx ') do call:1 "%%i"
popd
goto:eof

:1
2>nul md "C:\Destination Dir\%dest%"
set /a totalsize+=%~z1

if %totalsize% leq 20971520 move %1 "C:\Destination Dir\%dest%" && goto:eof

set /a dest+=1
set "totalsize=%~z1"
move %1 "C:\Destination Dir\%dest%"
Где:
C:\Source Dir - папка с файлами
C:\Destination Dir - папка, в которой будут создаваться подпапки с перемещенными файлами
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:29, 13-03-2012 | #7


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner

привидущей верси пишет что: Отсутствующий операнд! Непредвиденное появление:20971520
пошол проверят новую версию!

Отправлено: 20:36, 13-03-2012 | #8


Новый участник


Сообщения: 31
Благодарности: 0

Профиль | Отправить PM | Цитировать


Foreigner

Я проверил ну 1 папку создал а вторую не создал и удалиль половино файлов создал 2,3, ,,, 7 эти были файли без расширения.

Отправлено: 20:52, 13-03-2012 | #9


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


muqanna, исправьте в конце батника, я проверил, должно работать:
Код: Выделить весь код
....

set /a dest+=1
set "totalsize=%~z1"

md "C:\Destination Dir\%dest%"
move %1 "C:\Destination Dir\%dest%"
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:03, 13-03-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как собрат файлы в папку по 20мб каждый?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
как в образ winpe.wim с помощью GImageX добавить свои файлы в папку paaev Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista 26 01-05-2014 15:30
HDD - [решено] Скорость USB падает с 20мб/с до 10мб/с impress89rus Накопители (SSD, HDD, USB Flash) 10 14-01-2012 15:06
Прочее - права на папку temp~ и файлы в ней exo Общий по FreeBSD 6 26-09-2011 16:35
Блог - Как добавить в контекстное меню пункты “Копировать в папку” и “Переместить в папку” Vadikan Microsoft Windows 7 2 28-11-2010 22:09
Файлы сохраняются во временную папку Sakura Microsoft Windows 95/98/Me (архив) 1 02-01-2004 16:54




 
Переход