![]() |
Совмещение прогресс бара и комманды xcopy
Добрый день, как совместить прогресс бар с коммандой Xcopy.
Мне необходимо что бы после запуска бат файла с коммандой xcopy, показывалась не только фраза: "скопировано *** файлов", а во время копирования шёл этот бар, возможно ли написать такое? Вот сам прогресс бар: Код:
@Echo Off |
- обход файлов придется делать дважды: сначала для подсчета, потом для обработки;
- копировать файлы придется по одному (обновлять бар между копированием файлов) - конкретная реализация зависит от условий копирования, пример (без процедуры :BAR): Код:
@Echo Off |
а возможно сделать прогресс при копировании одного файла?
|
Цитата:
- вариант на VBS: Код:
Function FileCopy(strFileFrom, strDirTo) Код:
@set @x=0 /* |
Цитата:
просто закрывается окно, если вставить паузу перед @exit /b то (1, 11) Ошибка компиляции Microsoft JScript: Предполагается наличие ';' далее сразу закрывается |
Цитата:
наткнулся на одну замечательную утилитку - порт никсовой DD, которая может копировать файлы по частям, с её помощью можно организовать прогресс-бар для больших файлов: Код:
@Echo Off |
Код:
@Echo Off |
romrip, тогда для начала разобраться с копированием:
- закомментировать строку "Call :Bar" - в строке DD отключить подавление вывода, убрать в конце " >nul 2>&1" - добавить вывод командной строки: Код:
@Echo Off Код:
test.cmd >test.log 2>&1 P.S. постить процедуру BAR без толку - спецсимволы теряются |
Вложений: 1
кажеться разобрался, нехотел понимать русские буквы в заголовке,
теперь лучше, а можно вывести прогресс в выполняемом окне в виде растущей полоски ? и как спрятать выполение dd ? проценты в заголовке хорошо, но вот все окно забиваться работай dd - это не очень. Код:
@set @x=0 /*; новая ошибка: Код:
test1.cmd(8, 3) Ошибка выполнения Microsoft JScript: 'new ActiveXObject(...) .NameSpace(...)' - есть null или не является объектом. так, а как прикрбтить вот такой :BAR Код:
:BAR неплохо еслиб бар выглядел так как в приклепленном батнике в архиве: |
Цитата:
|
Вложений: 1
все,разобрался, результат в прикрепленном архиве, единственное, не могу разобраться с кодировкой, вместо русских букв иероглифы, если ставить кирилицу, то нет полосы копирования, вместо неё буквы Ы, либо что-то иное.
|
romrip, текст батника должен быть в DOS-кодировке
CMD/BAT - [решено] Помогите с кодировкой. CMD/BAT - Проблема с кодировками в cmd |
если текст в DOS кодировке, то он в блокноте(AkelPad, TigerPad) отображаеться нормально, а вот при выполнении вместо кирилицы иероглифы (для Dos ставил шрифт и terminal и fixedsys) ничего не помогает.
Думаю тему можно пометить как (РЕШЕНО), ибо основная задача решена, а скодировкой- это второстепенно. |
появилась еще одна идея,:
возможно ли реализовать вывод в ЗАГОЛОВОК ОКНА того, что выводиться в командной строке (в данный момент времени) ?? например robocopy при копировании выводит % копирования, неплохо было бы увидеть их в заголовке окна. |
Цитата:
|
можно ли как то прикрутить прогресс бар к такому батнику?
Код:
@echo off |
amel27,
а как можно заманить строку Код:
For /F "Delims=" %%i In ('DIR /B/S/A-D "%FROM%\%MASK%"^|Find /V /C ""') Do Set cntA=%%i делаю так For /F "Delims=" %%i In ('Find /V /C "" "test.txt"') Do Set cntA=%%i но как оставить только цыфры в выводе ---------- test.txt=12535 иначе процент вообще не прощитывается |
нашел в принципе ответ тут
http://forum.oszone.net/post-1942317.html сделал так Set cntA=0 For /F "usebackq" %%L In (test.txt) Do (Set /A cntA+=1) Set cnt=0 for /f "Tokens=*" %%i in (test.txt) do ( move "%%~nxi" "%%i" Call :bar ) вроди все правильно отображается и считает..но может есть решение попроще |
Цитата:
Цитата:
Код:
@echo off |
припозднился, но возможно поможет.
конструкция создает батник, который в свою очередь выведет стандартное окно копирования windows (а там и прогресс бар и т.д. ) вставить можно в любом месте батника Код:
echo @set @x=0 /*>>progress_bar.cmd |
Цитата:
|
Никак. Разве что извращаться совмещением cmd и JScript в одном флаконе, либо использовать «mshta.exe», передавая ему в командной строке сформированный JScript-код. Проще перейти на WSH.
Впрочем, нет: есть ещё вариант с использованием команды «shellcopy» утилиты NirCmd. |
Цитата:
|
Цитата:
|
Цитата:
К сожалению моих познаний на это пока не хватает :) |
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
вы можете использовать robocopy |
Время: 16:49. |
Время: 16:49.
© OSzone.net 2001-