2011-08-17 2 views
0

Я пытаюсь скопировать набор файлов и папок рекурсивно из каталога. Набор файлов указан в текстовом файле. Вот мой сценарий:XCOPY копирует содержимое всего каталога, а не только файлы и папки, упомянутые в файле

set src_folder=C:\Users\mmhuqx\HW 
set dst_folder=C:\Unix2Windows 
set filelist=C:\Unix2Windows\filelist-tm.txt 
echo Origen: %src_folder% 
echo Destino: %dst_folder% 
echo. 

for /f "delims=" %%i in (%filelist%) do (
    xcopy /s /y "%src_folder%\%%i" "%dst_folder%" 
) 

Но когда я запускаю сценарий, он копирует все содержимое каталога, включая файлы и папки, не перечисленные в текстовом файле.

Как я могу заставить его работать с помощью XCOPY, или это невозможно?

+0

Я протестировал ваш сценарий. Меня устраивает. Что выводит командная строка при выполнении сценария? Возможно, это дает вам указатель. – Kai

+0

Это содержимое файла-tm.txt: – user880222

+0

Нет указателя в списке. Скрипт копирует все из C: \ Users \ mmhuqx \ HW, что представляет собой огромное количество файлов и папок. Но целью является копирование только файлов, упомянутых в текстовом файле (filelist-tm.txt). Вот содержимое текстового файла:. TOP_LEVEL \ MODEM_DEBUG TOP_LEVEL \ MODEM_DEBUG TOP_LEVEL \ MODEM_RELEASE TOP_LEVEL \ MODEM_DEBUG \ AENEAS_FW.fls TOP_LEVEL \ MODEM_DEBUG \ CDS TOP_LEVEL \ MODEM_DEBUG \ nvm_SAM _ * CFG TOP_LEVEL \ MODEM_DEBUG \ psi.fls TOP_LEVEL \ MODEM_DEBUG \ Platform.axf TOP_LEVEL \ MODEM_DEBUG \ PlatforTOP_LEVEL \ MODEM_DEBUG TOP_LEVEL \ MODEM_RELEASE TOP_LEVEL \ MODEM_DEBUG \ AENEAS_FW – user880222

ответ

0

Ваш filelist-tm.txt кажется неправильным. Он содержит, например, запись TOP_LEVEL\MODEM_DEBUG. Так что каталог полностью копируется со всеми его файлами.

Кажется, что вы хотите только скопировать TOP_LEVEL\MODEM_DEBUG\AENEAS_FW.fls. Таким образом, ваш filelist-tm.txt должен содержать только эту запись.

+0

Спасибо за комментарии. Но я все еще не уверен, понял ли я, что вы имели в виду. Я хочу скопировать не только файл TOP_LEVEL \ MODEM_DEBUG \ AENEAS_FW.fls, но и перечисленные файлы и сохранить ту же структуру каталогов при копировании. Но сценарий в настоящее время копирует все. Можно ли использовать XCOPY для выполнения моих целей? – user880222

+0

Ваш скрипт не сохраняет структуру каталогов, потому что вы позволяете xcopy копировать файлы в '% dst_folder%'. Возможно, вы можете исправить это, если вы измените это на '% dst_folder% \ %% i'. В моем ответе я имел в виду, что ваш файл не должен содержать записей, указывающих на каталог. Он должен содержать только файлы, которые вы хотите скопировать. – Kai

+0

Я тоже попробовал это, оставив все записи dir из текстового файла. Но все же он не копирует только набор файлов, а всю структуру dir. Спасибо, в любом случае. Не уверен, что xcopy - это правильный инструмент для этого. – user880222