Копирование файлов в командной строке Windows с помощью Progress - PullRequest
29 голосов
/ 12 сентября 2008

Кто-нибудь знает о командной строке Windows (доступной в XP Pro или более поздней версии по умолчанию), которая может копировать файл, показывая прогресс. Мне все равно, находится ли индикатор прогресса в терминале или в окне графического интерфейса.

Предназначено для использования в сценариях пакетных файлов

Ответы [ 7 ]

41 голосов
/ 12 февраля 2011

использовал команду копирования с ключом / z для копирования по сетевым дискам, также работает для копирования между локальными дисками на XP home edition

18 голосов
/ 12 сентября 2008

Robocopy

Robocopy , или «Надежное копирование файлов», является каталогом командной строки и / или репликацией файлов команда . Robocopy функционально заменяет Xcopy , с большим количеством опций. Он был доступен как часть Windows Resource Kit , начиная с Windows NT 4.0, и впервые был представлен как стандартная функция в Windows Vista и Windows Server 2008, Команда: robocopy ...

13 голосов
/ 09 сентября 2014

Опция Esentutl / y позволяет копировать (одиночные) файлы с индикатором выполнения, например так:

enter image description here

команда должна выглядеть так:

esentutl /y "FILE.EXT" /d "DEST.EXT" /o

Команда доступна на каждом компьютере с Windows, но опция y представлена ​​в Windows Vista. Так как он работает только с отдельными файлами, он выглядит не очень полезным для маленьких. Другое ограничение заключается в том, что команда не может перезаписывать файлы. Вот скрипт-обертка, который проверяет место назначения и при необходимости может удалить его (помощь можно увидеть, передав /h).

6 голосов
/ 13 августа 2013

Несколько интересных моментов, касающихся всех этих методов. Если у вас есть гигабитные соединения, вы не должны использовать флаг / z, иначе это снизит скорость вашего соединения. Robocopy или dism - единственные инструменты, которые работают на полной скорости и показывают индикатор выполнения. wdscase предназначен для многоадресной рассылки с сервера WDS и может быть быстрее, если вы работаете с компьютерами с 5+. Чтобы получить время 1:17, я увеличил гигабитное соединение до 920 Мбит / с, чтобы вы не получили его на двух соединениях одновременно. Также обратите внимание, что экспорт небольшого wim-индекса из большего wim-файла занимает больше времени, чем просто копирование всего.

Model  Exe       OS       switches     index    size    time   link speed 
8760w  dism      Win8     /export-wim  index 1  6.27GB  2:21   link 1Gbps
8760w  dism      Win8     /export-wim  index 2  7.92GB  1:29   link 1Gbps
6305   wdsmcast  winpe32  /trans-file  res.RWM  7.92GB  6:54   link 1Gbps
6305   dism      Winpe32  /export-wim  index 1  6.27GB  2:20   link 1Gbps
6305   dism      Winpe32  /export-wim  index 2  7.92GB  1:34   link 1Gbps
6305   copy      Winpe32  /z           Whole    7.92GB  25:48  link 1Gbps
6305   copy      Winpe32  none         Wim      7.92GB  1:17   link 1Gbps
6305   xcopy     Winpe32  /z /j        Wim      7.92GB  23:54  link 1Gbps
6305   xcopy     Winpe32  /j           Wim      7.92GB  1:38   link 1Gbps
6305   VBS.copy  Winpe32               Wim      7.92    1:21   link 1Gbps
6305   robocopy  Winpe32               Wim      7.92    1:17   link 1Gbps

Если у вас нет robocopy.exe, почему бы не запустить его из сетевой папки, из которой вы копируете файлы? В моем случае я предпочитаю делать это, поэтому мне не нужно перестраивать свой файл WinPE boot.wim каждый раз, когда я хочу внести изменения, а затем обновить десятки флеш-накопителей.

1 голос
/ 12 сентября 2008

Этот техник ссылка содержит полезную информацию для копирования больших файлов. Я использовал утилиту сервера обмена, упомянутую в статье, которая показывает прогресс и использует функции не буферизованного копирования для более быстрой передачи.

В другом сценарии я использовал робокопию. Robocopy GUI упрощает настройку параметров командной строки.

0 голосов
/ 04 декабря 2012

Вот скрипт, который я использую:

@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
mode con:cols=210 lines=50
ECHO Starting 1-way backup of MEDIA(M:) to BACKUP(G:)...
robocopy.exe M:\ G:\ *.* /E /PURGE /SEC /NP /NJH /NJS /XD "$RECYCLE.BIN" "System Volume Information" /TEE /R:5 /COPYALL /LOG:from_M_to_G.log
ECHO Finished with backup.
pause
0 голосов
/ 12 сентября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...