С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
1

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

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

Author24 — интернет-сервис помощи студентам
Как (если можно) в команде robocopy сделать чтобы вместо подробной инфы о всех файлах он показывал "Установка... Х% , ХХ.ХХ КБ из ХХ.ХХ КБ (если в МБ то в МБ)".
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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:\ то каталог...

Размер папки
Всем привет! Нужно узнать развер папки! С примером пожалуйста!

6
Модератор
Эксперт JS
5238 / 2111 / 416
Регистрация: 06.01.2013
Сообщений: 4,843
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
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 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
Модератор
Эксперт JS
5238 / 2111 / 416
Регистрация: 06.01.2013
Сообщений: 4,843
07.01.2013, 12:11 4
Цитата Сообщение от Dragokas Посмотреть сообщение
Дополнил вариант FraidZZ. Только не разбирался как там в Robocopy задать, чтобы копировала рекурсивно файлы по указанному списку.
Робокопи вообще странная команда, я предпочитаю ей не пользоваться
0
Эксперт WindowsАвтор FAQ
18014 / 7715 / 892
Регистрация: 25.12.2011
Сообщений: 11,496
Записей в блоге: 16
07.01.2013, 15:45 5
Jeka_Osokin, функция :GetFolderSize

FraidZZ, ???
0
Модератор
Эксперт JS
5238 / 2111 / 416
Регистрация: 06.01.2013
Сообщений: 4,843
07.01.2013, 16:05 6
Цитата Сообщение от Dragokas Посмотреть сообщение
FraidZZ, ???
Использую в основном просто copy или xcopy. Преимуществами robocopy как-то не прникся, увы(
0
11 / 11 / 1
Регистрация: 31.08.2012
Сообщений: 110
07.01.2013, 17:04  [ТС] 7
Цитата Сообщение от Dragokas Посмотреть сообщение
функция
Ак я же не знаю как ей пользоваться
0
07.01.2013, 17:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2013, 17:04
Помогаю со студенческими работами здесь

РАЗМЕР ПАПКИ
Требуется определить размер папки на диске Использую функции прописаные здесь:...

Размер папки
Доброго времени суток! Подскажите как можно узнать размер выбранного каталога? в интернете ни...

Размер папки проекта
Здравствуйте! Немного сел за питон, создал пару проектов типа &quot;Hello world&quot; и обнаружил, что...

Получить размер папки
В общем, начну просто. Изучаем Си Шарп. Дали 3 лабораторки, а сейчас проект требуют. Я в смятении....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru