Ответ 1
используется команда копирования с/z-переключателем для копирования по сетевым дискам, также работает для копирования между локальными дисками. на домашней странице XP
Кто-нибудь знает о командной строке Windows (доступной на XP Pro или более поздней версии по умолчанию), которая может копировать файл, показывая прогресс. Мне все равно, есть ли индикатор прогресса в терминале или в окне графического интерфейса.
Это предназначено для использования во время командного сценария
используется команда копирования с/z-переключателем для копирования по сетевым дискам, также работает для копирования между локальными дисками. на домашней странице XP
Robocopy, или "Robust File Copy", является командной строки и/или репликацией файла command. Robocopy функционально заменяет Xcopy с дополнительными опциями. Он был доступен как часть Windows Resource Kit, начиная с Windows NT 4.0, и был впервые представлен как стандартная функция в Windows Vista и Windows Server 2008. Команда
robocopy
...
Параметр Esentutl/y позволяет копировать (одиночные) файлы файлов с индикатором выполнения следующим образом:
команда должна выглядеть так:
esentutl /y "FILE.EXT" /d "DEST.EXT" /o
Команда доступна на всех машинах Windows, но опция y
представлена в Vista.
Поскольку это работает только с одиночными файлами, это не очень полезно для небольших.
Другим ограничением является то, что команда не может перезаписывать файлы. Вот обертка script, которая проверяет место назначения и, если необходимо, может удалить его (помощь можно увидеть путем передачи /h
).
Некоторые интересные моменты, касающиеся всех этих методов. Если у вас есть Gigabit соединения, вы не должны использовать флаг /z или он убьет вашу скорость соединения. Robocopy or dism - единственные инструменты, которые работают на полной скорости и показывают индикатор выполнения. wdscase предназначена для многоадресной передачи с сервера WDS и может быть быстрее, если вы создаете 5+ компьютеров. Чтобы получить время 1:17, я максимизировал соединение Gigabit со скоростью 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, почему бы не запустить его из общего сетевого ресурса, с которого вы копируете свои файлы? В моем случае я предпочитаю делать это, поэтому мне не нужно перестраивать Win. boot файл WinPE каждый раз, когда я хочу внести изменения, а затем обновить десятки флешек.
Эта техническая ссылка ссылка содержит некоторую полезную информацию для копирования больших файлов. Я использовал утилиту сервера обмена, упомянутую в статье, которая показывает прогресс и использует небуферизованные функции копирования внутри для более быстрой передачи.
В другом сценарии я использовал robocopy. Robocopy GUI упрощает правильную настройку параметров командной строки.
Вот script я использую:
@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
Вы можете легко написать программу для этого, у меня есть несколько, которые я написал, которые отображают байты, скопированные при копировании файла. Если вам интересно, прокомментируйте, и я отправлю ссылку на один.