Мне нужно переместить все папки в каталоге с именем Profile.V2 из каталога, а затем я хочу удалить каталог. Я использую для этого файл bat, который ниже, он отлично работает, за исключением случаев, когда папка с таким же именем уже существует в том месте, куда я перемещаю файлы / папки, это приводит к остановке файла bat и приглашению появляется вопрос, можно ли перезаписать папку. У команды перемещения есть аргумент / Y, который перекрывает подсказку, однако, если я помещаю его после слова "move" в моем bat-файле, он не работает. Кто-нибудь может понять, почему и куда он должен идти?
@ECHO OFF
H:
cd Profile.V2
for /f "delims=" %%a in ('dir /b') do (
move "%%a" H:\
)
RD /S /Q H:\Profile.V2
Большое спасибо Стив
Хорошо. Я бы просто сделал "двигаться / Y . H: \ "Насколько я могу судить, это то же самое, что и цикл for.
/ Y идет сразу после хода и должно быть верхний регистр.
(Официально регистр не учитывается, но по опыту я знаю, что в некоторых системах это имеет значение. Мне так и не удалось выяснить, почему.)
Команда «Переместить» требует, чтобы целевой каталог не существует и потерпит неудачу, если это произойдет. Нет аргументов командной строки, которые могут это исправить.
Вместо этого вы можете рассмотреть этот сценарий:
@ECHO OFF
H:
xcopy h:\Profile.V2 h:\ /s/e/v/y
RD /S /Q H:\Profile.V2
Xcopy скопирует содержимое каталога Profile.V2 в корень диска H: и перезапишет существующие файлы без запроса. Он создаст все каталоги, найденные в profile.v2, включая пустые.
Перемещение содержимого может быть меньшей целью, поскольку ваша команда RD удаляет каталог без проверки.
Для объяснения аргументов командной строки введите:
xcopy /?