скопировать список файлов, чьи пути находятся в файле source.txt, разделенном точкой с запятой, в целевую папку, сохраняя их исходные пути - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть список файлов в test.txt, который содержит список путей к файлам в формате d: \ source \ www \ default.aspx; d: \ source \ common \ common.js Мне нужно написать файл bat для копированияэти файлы к месту назначения, например .F: \ destination \, путь которого также передается в качестве параметра в файл bat. У меня есть следующий сценарий для этой проблемы for /f %%l in (somefile.txt) do ( for %%f in (%%l) do ( copy "%%f" %1 ) ): мне нужно сохранить структуру папок исходной папки копирования в папке назначения.то есть выше d: \ source \ www \ default.aspx нужно скопировать в f: \ destination \ www \ default.aspx, а не в f: \ destination.Буду признателен, если кто-то может дать решение этого.

1 Ответ

1 голос
/ 29 апреля 2011

Пожалуйста, попробуйте с помощью xcopy /I "%%f" "%~1\%%~pf":

  • xcopy создаст структуру каталогов для вас (без запроса из-за переключателя /I);
  • %%~pfявляется частью пути к файлу, который нужно скопировать (см. help for), добавляется к базовому пути назначения без каких-либо окружающих кавычек %~1;
  • комбинация пути назначения заключена в кавычки.
...