Лучший отвечающий
Копирование файла + GUI

Вопрос
-
Добрый день.
про то как копировать файлы с удаленного пк на диск многое уже написано: copy, xcopy, robocopy
но вот вопрос, каким образом скопировать файл, что бы в процессе копирования, появилось окно прогресса выполнения (что появляется когда мы копируем в проводнике или когда копируются какие то файлы при установке чего либо)
т.е задача что бы юзер видел скока процентов уже завершено и сколько времени осталось ждать.
идеальным вариантом был бы просто batник.7 мая 2009 г. 16:44
Ответы
-
Вот, кстати, готовый командлет по копированию файлов со статусбаром:
http://poshcode.org/991
Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.- Помечено в качестве ответа VM2 24 мая 2009 г. 3:54
8 мая 2009 г. 9:36 -
http://zorion.wordpress.com/2009/05/13/copy-data/
function copy-data { param($source, $dest) $counter = 0 $files = Get-ChildItem $source -Force -Recurse foreach($file in $files) { $status = "Copying file {0} of {1}: {2}" -f $counter, $files.count, $file.name Write-Progress -Activity "Copyng Files" -Status $status -PercentComplete ($counter/$files.count * 100) Copy-Item $file.pspath $dest -Force $counter++ } }
12 мая 2009 г. 23:31
Все ответы
-
Добрый день.
про то как копировать файлы с удаленного пк на диск многое уже написано: copy, xcopy, robocopy
но вот вопрос, каким образом скопировать файл, что бы в процессе копирования, появилось окно прогресса выполнения (что появляется когда мы копируем в проводнике или когда копируются какие то файлы при установке чего либо)
т.е задача что бы юзер видел скока процентов уже завершено и сколько времени осталось ждать.
идеальным вариантом был бы просто batник.
Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.8 мая 2009 г. 5:50 -
В PoSh есть командлет "Write-Progress":
ИМЯ
Write-Progress
ОПИСАНИЕ
Отображает индикатор выполнения в командном окне Windows PowerShell.
СИНТАКСИС
Write-Progress [-activity] <string> [-status] <string> [[-id] <int>] [-percentComplete <int>] [-secondsRemaining <i
nt>] [-currentOperation <string>] [-parentId <int>] [-completed] [-sourceId <int>] [<CommonParameters>]
ПОДРОБНОЕ ОПИСАНИЕ
Отображает индикатор выполнения в командном окне Windows PowerShell. Будет ли отображаться индикатор выполнения опе
рации, зависит от значения переменной $ProgressPreference. Чтобы узнать значение этой переменной, введите $Progress
Preference. Допустимые значения переменной: SilentlyContinue, Continue, Stop и Inquire. Если она имеет значение Sil
entlyContinue, сведения о ходе выполнения операции на консоль не выводятся. Чтобы задать значение этой переменной д
ля сеанса, введите $ProgressPreference = "<значение>". Командлет Write-Progress использует данные о состоянии выпол
няющейся команды или сценария, чтобы визуально отобразить ход выполнения.
Вот простой пример как реализовать прогрессбар на Posh:
for ($i = 1; $i -le 10; $i++)
{
write-progress -id 1 -activity "Прогресс выполнения" -status "Статус:" -percentComplete ($i*10);
sleep 1;
for ($j = 1; $j -le 10; $j++)
{
write-progress -id 2 -parentId 1 -activity "Копирование файлов" -status "Имя копируемого файла" -percentComplete
($j*10)
sleep 0.5
}
}
Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.8 мая 2009 г. 6:00 -
Вот, кстати, готовый командлет по копированию файлов со статусбаром:
http://poshcode.org/991
Если ответ Вам помог, нажмите на изображение зеленой галочки - «пометить как ответ». Если ответ был для Вас полезен, Вы можете пометить это сообщение как «полезное», нажав на ссылку "проголосовать за полезное сообщение" в правом верхнем углу сообщения.- Помечено в качестве ответа VM2 24 мая 2009 г. 3:54
8 мая 2009 г. 9:36 -
http://zorion.wordpress.com/2009/05/13/copy-data/
function copy-data { param($source, $dest) $counter = 0 $files = Get-ChildItem $source -Force -Recurse foreach($file in $files) { $status = "Copying file {0} of {1}: {2}" -f $counter, $files.count, $file.name Write-Progress -Activity "Copyng Files" -Status $status -PercentComplete ($counter/$files.count * 100) Copy-Item $file.pspath $dest -Force $counter++ } }
12 мая 2009 г. 23:31