У меня есть файл DWA_160_drv_RevB_2_2-42_all_en_20130313.zip на рабочем столе. Я хочу скопировать его на флешку с помощью CMD. Для этого я использую команду copy, но получаю странные результаты, т.е. исходный файл составляет около 30 тысяч (!!) раз больше, чем новый файл.
C:\Users\Sam\Desktop>
C:\Users\Sam\Desktop>dir dwa*
Volume in drive C is Vista (ST1PT1)
Volume Serial Number is D27C-,,,,
Directory of C:\Users\Sam\Desktop
2013-10-10 11:56 23 324 179 DWA_160_drv_RevB_2_2-42_all_en_20130313.zip
1 File(s) 23 324 179 bytes
0 Dir(s) 3 318 292 480 bytes free
C:\Users\Sam\Desktop>copy dwa* d:\dwa-driver.zip
DWA_160_drv_RevB_2_2-42_all_en_20130313.zip
1 file(s) copied.
C:\Users\Sam\Desktop>d:
D:\>dir
Volume in drive D is CRUZER
Volume Serial Number is 0085-,,,,
Directory of D:\
2013-10-10 13:41 734 dwa-driver.zip
1 File(s) 734 bytes
0 Dir(s) 2 050 744 320 bytes free
D:\>
Как это может быть? ... как это возможно? Команда выполнена успешно, но полученный файл похож на каплю воды в океане, когда вы сравниваете ее размер, и он, очевидно, поврежден.
Я что-то здесь не так делаю?
Я подумал, что это может быть связано с тем, как я печатаю исходный и целевой путь поиска, поэтому я добавил кавычки. Я не могу сказать, что это помогло.
D:\>c:
C:\Users\Sam\Desktop>copy "dwa*" "d:\dwa-driver.zip"
DWA_160_drv_RevB_2_2-42_all_en_20130313.zip
Overwrite d:\dwa-driver.zip? (Yes/No/All):
0 file(s) copied.
C:\Users\Sam\Desktop>d:
D:\>c:
C:\Users\Sam\Desktop>copy "dwa*" "d:\dwa-driver.zip"
DWA_160_drv_RevB_2_2-42_all_en_20130313.zip
Overwrite d:\dwa-driver.zip? (Yes/No/All): y
1 file(s) copied.
C:\Users\Sam\Desktop>d:
D:\>dir
Volume in drive D is CRUZER
Volume Serial Number is 0085-,,,,
Directory of D:\
2013-10-10 13:56 734 dwa-driver.zip
1 File(s) 734 bytes
0 Dir(s) 2 050 744 320 bytes free
D:\>
Поэтому я решил попробовать использовать полное имя исходного файла, используя функцию автозаполнения в CMD, чтобы убедиться, что он введен правильно. И на этот раз это сработало! Вот команда.
D:\>c:
C:\Users\Sam\Desktop>copy DWA_160_drv_RevB_2_2-42_all_en_20130313.zip d:\dwa-d
river2.zip
1 file(s) copied.
C:\Users\Sam\Desktop>d:
D:\>dir
Volume in drive D is CRUZER
Volume Serial Number is 0085-,,,,
Directory of D:\
2013-10-10 13:56 734 dwa-driver.zip
2013-10-10 11:56 23 324 179 dwa-driver2.zip
2 File(s) 23 324 913 bytes
0 Dir(s) 2 027 417 600 bytes free
D:\>
Так что на этот раз это сработало!?!? Чем dwa-driver2.zip отличается от dwa-driver.zip? И как оригинальный файл - DWA_160_drv_RevB_2_2-42_all_en_20130313.zip - сравнить с dwa-driver.zip? Чтобы ответить на это, я сделал параллельное текстовое и шестнадцатеричное сравнение. Смотрите скриншоты ниже.
Что именно происходит в строке 6? Почему он без проблем копирует первые 5 строк, а затем застревает в строке 6 (см. Скриншот WinMerge)? Оба файла идентичны, вплоть до строки 6, и с этого момента данные больше не копируются в новый файл. Зачем? Разрешено ли использовать подстановочные знаки с командой копирования?
Обновить
Я просто назову это ошибкой и использую команду xcopy, потому что она принимает все, что я на нее брошу. Неважно, есть ли символы подстановки или нет. К сожалению, команда xcopy доступна не во всех режимах Windows и окнах командной строки.
D:\>c:
C:\Users\Sam\Desktop>xcopy dwa* d:\dwa-driver3.zip
Does D:\dwa-driver3.zip specify a file name
or directory name on the target
(F = file, D = directory)? f
C:DWA_160_drv_RevB_2_2-42_all_en_20130313.zip
1 File(s) copied
C:\Users\Sam\Desktop>d:
D:\>dir
Volume in drive D is CRUZER
Volume Serial Number is 0085-,,,,
Directory of D:\
2013-10-10 13:56 734 dwa-driver.zip
2013-10-10 11:56 23 324 179 dwa-driver2.zip
2013-10-10 11:56 23 324 179 dwa-driver3.zip
3 File(s) 46 649 092 bytes
0 Dir(s) 2 004 090 880 bytes free
D:\>
Скриншоты
Нажмите для увеличения.
Сравнение текста между DWA_160_drv_RevB_2_2-42_all_en_20130313.zip и dwa-driver.zip:
Разница в размерах между dwa-driver.zip и dwa-driver2.zip:
Сравнение текста между dwa-driver.zip и dwa-driver2.zip в Beyond Compare 3:
Шестнадцатеричное сравнение в Beyond Compare 3: