1

Попытка создать пакетный файл, который будет копировать файл определенного типа с компакт-диска и помещать его в новую папку с запросом выбора имени папки назначения. Мне было трудно объяснить, как найти файлы у нескольких старых пользователей, как передать файлы на флешку, поэтому я надеюсь получить ответ одним двойным щелчком мыши.

Я пробовал несколько вариантов xcopy, но, насколько я могу судить, он не дал никакого результата.

Дисковод D - это дисковод CD, а E - дисковод USB. Файлы, которые я ищу на компакт-диске, находятся в нескольких папках.

Не прикрепляется к пакетному файлу, если есть лучший способ сделать это. Благодарю.

@echo off
set /p x= 
xcopy "D:\" "E:\%x%\" .*pes /s

Пытался запустить его с диска Е, чтобы упростить,

xcopy E:\ *.pes /s

Он копирует, но копирует весь каталог ... и превращает все файлы в .pes вместо того, чтобы только копировать .pes сейчас.

1 ответ1

0

Это должно работать так:

@echo off
set /p x= 
xcopy "D:\*.pes" "E:\%x%\" /s

Но структура папок источника также будет создана в месте назначения.

Чтобы скопировать все файлы только в одну папку, это может быть использовано:

@echo off
set /p x= 
for /r "D:\" %%i in (*.pes) do xcopy "%%~fi" "E:\%x%\"

Изменить, чтобы уточнить / исследования:

FOR /R = рекурсивный цикл FOR (https://ss64.com/nt/for_r.html)

%% i = переменная для каждого файла

(* .pes) = каждый файл в папке / подпапках, который заканчивается на .pes

В этом нет необходимости: "%% ~ fi"

%% ~ fi = "расширяет %% i до полного пути" (см. FOR /? в CMD)

Похоже, что это работает так:

for /r "D:\" %%i in (*.pes) do xcopy "%%i" "E:\%x%\"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .