Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
1

Команда ROBOCOPY и размер папки

31.08.2012, 16:06. Просмотров 2993. Ответов 6
Метки нет (Все метки)

Как (если можно) в команде robocopy сделать чтобы вместо подробной инфы о всех файлах он показывал "Установка... Х% , ХХ.ХХ КБ из ХХ.ХХ КБ (если в МБ то в МБ)".
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2012, 16:06
Ответы с готовыми решениями:

Команда для создания папки на FTP-сервере
на сервере имеется папка /public_html с помощью BAT команды нужно создать папку %username% (имя...

Не правильно выполняется команда. Размер строки меньше получается
cd /d "D:\2" setlocal enabledelaydexpansion for /f %i in (list.txt) do ( set aa=%~ni set...

Почему в cmd команда cd или chdir не проводит за пределы папки винды?
у меня винда в Д , пишу cd d:\vaga\ то каталог меняется туда . а если пишу cd c:\ то каталог...

Посчитать размер папки
Есть код который по выбору показывает размер папки , но в нём какая то ошибка и он показывает...

Определить размер папки
Сообщение выделено из темы: http://www.cyberforum.ru/cmd-bat/thread645033.html Спасибо всем!...

6
Eva Rosalene
Ladybug
4122 / 1596 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
06.01.2013, 19:49 2
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
setlocal enabledelayedexpansion
chcp 1251>nul
set /p src=Входная папка:
set /p output=Выходная папка:
set kol=0
FOR %%a IN ("!src!\*") DO (
 set /a kol=!kol!+1
)
set kol1=0
FOR %%a IN ("!src!\*") DO (
 robocopy "!src!" "!output!" "%%~nxa">nul
 set /a kol1=!kol1!+1
 set /a percentage1=!kol1!*100
 set /a percentage=!percentage1!/!kol!
 cls
 echo Скопировано !kol1! файлов из !kol! ^(!percentage!%%^)
)
echo Копирование завершено^!
pause>nul
chcp 866>nul
exit 0
Как-то так, но это учитывает не размер, а кол-во файлов
0
Dragokas
Эксперт WindowsАвтор FAQ
17073 / 7128 / 861
Регистрация: 25.12.2011
Сообщений: 10,933
Записей в блоге: 16
07.01.2013, 05:19 3
Jeka_Osokin, дополнительные шаблоны не предусмотрены.
Только городить свое.

Дополнил вариант FraidZZ. Только не разбирался как там в Robocopy задать, чтобы копировала рекурсивно файлы по указанному списку.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@Echo Off
SetLocal enabledelayedexpansion EnableExtensions
chcp 1251>nul
set /p src=Входная папка:
set /p output=Выходная папка:
 
Call :GetFolderSize "%src%" TotalSize
Call :ConvertBytes %TotalSize% strTotalSize
 
Call :GetTemporaryName tmpfile
dir "%src%" /b /s /a:-d>"%tmpfile%"
for /F "Delims=" %%A in ('find /v /c ""^<"%tmpfile%"') do Set /A TotalCount=%%A
 
set /A Count=0
FOR /F "UseBackQ delims=" %%A IN ("%tmpfile%") DO (
  robocopy /S "%src%" "%output%" "%%~nxA">nul
  set /A Count+=1
  set /A Size=!Size!+%%~zA
  set /A percentage=!Size!*100/%TotalSize%
  Call :ConvertBytes !Size! strSize
  cls
  echo Скопировано !Count! файлов из %TotalCount%. !strSize! из !strTotalSize! ^(!percentage!%%^)
)
echo Копирование завершено^!
del "%tmpfile%"
chcp 866>nul
pause
exit 0
 
:GetFolderSize %1-Folder_Name %2-Var_Name.Size
Call :GetTemporaryName tmpfile
Dir "%~1" /-C /S /A:-D>"%tmpfile%"
for /f %%A in ('find /v /c "" ^< "%tmpfile%"') do Set /A Count=%%A
Set /A Count-=2
For /F "tokens=1-3" %%a IN ('more +%Count% ^< "%tmpfile%"') Do Set %~2=%%c& Goto :DirSizeExt
:DirSizeExt
Del "%tmpfile%"
::Set /a dirsizeT=dirsize+0
::If Not "%dirsizeT%"=="%dirsize%" Echo Число %dirsize% слишком велико для обработки в CMD& Exit /B
Exit /B
 
:GetTemporaryName %1-var_Name
set sTempName=%temp%\temp%random%.tmp
if exist "%sTempName%" (goto :GetTemporaryName) else (set %1=%sTempName%)
Exit /B
 
:ConvertBytes %1-Bytes %2-var_name_Size_with_Measure
Set %~2=%~1 B
if %~1 GEQ 1024 Set /A %~2=%~1/1024& Set %~2=!%~2! KB
if %~1 GEQ 1048576 Set /A %~2=%~1/1024/1024& Set %~2=!%~2! MB
Exit /B
Имхо, попытка приукрасить вывод информации убивает часть заложенного в robocopy функционала,
например то же копирование в несколько потоков.
0
Eva Rosalene
Ladybug
4122 / 1596 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
07.01.2013, 12:11 4
Цитата Сообщение от Dragokas Посмотреть сообщение
Дополнил вариант FraidZZ. Только не разбирался как там в Robocopy задать, чтобы копировала рекурсивно файлы по указанному списку.
Робокопи вообще странная команда, я предпочитаю ей не пользоваться
0
Dragokas
Эксперт WindowsАвтор FAQ
17073 / 7128 / 861
Регистрация: 25.12.2011
Сообщений: 10,933
Записей в блоге: 16
07.01.2013, 15:45 5
Jeka_Osokin, функция :GetFolderSize

FraidZZ, ???
0
Eva Rosalene
Ladybug
4122 / 1596 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
07.01.2013, 16:05 6
Цитата Сообщение от Dragokas Посмотреть сообщение
FraidZZ, ???
Использую в основном просто copy или xcopy. Преимуществами robocopy как-то не прникся, увы(
0
Jeka_Osokin
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
07.01.2013, 17:04  [ТС] 7
Цитата Сообщение от Dragokas Посмотреть сообщение
функция
Ак я же не знаю как ей пользоваться
0
07.01.2013, 17:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 17:04

Получить размер папки, за исключением некоторых файлов
Нужна помощь в отладке скрипта получения размера содержимого папки Temp, за исключением...

Выполнить действие, если размер папки превышает 10 МБ
Здравствуйте !!! как в бат сделать такое если папка больше 10mb запуск файла не происходит если...

Подсчитать размер папки вместе с содержимым всех ее подпапок
Нужно написать .bat файл. Подсчитать размер папки вместе с содержимым всех ее подпапок. Имя папки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru