Пакет Windows переместится в каталог, который может не существовать
В пакетном файле Windows я пытаюсь переместить файл в каталог, который в настоящее время не существует. Поскольку каталога нет, когда я делаю ход, я вижу ошибку, например:
Система не может найти указанный путь
move c:\aaa\bbb\ccc\ddd\myfile.txt c:\aaa\111\222\333\444\mytext.txt
Как я могу легко создать путь, к которому я хочу перейти, если он в настоящее время не существует? Например, каталог 111 может не существовать под aaa. Я хочу, чтобы вся структура пути была создана, а затем файл перемещался.
Я думал, что это просто создаст для меня весь путь как часть движения.
Ответы
Ответ 1
Пытаться:
md c:\aaa\111\222\333\444 2> nul
перед вашей командой Move.
md делает каталоги рекурсивными, поэтому, если нет родительских каталогов до 444, он будет продолжать создавать иерархически. "2> nul" гарантирует, что если у вас уже есть каталог, ваша команда не будет ошибкой.
Ответ 2
Если ROBOCOPY
является вариантом, он создаст структуру папок, если она не существует.
Попробуй это:
ROBOCOPY c:\aaa\bbb\ccc\ddd c:\aaa\111\222\333\444 mytext.txt /MOV
Ответ 3
if not exist c:\aaa\111\222\333\444 md c:\aaa\111\222\333\444
Move c:\aaa\bbb\ccc\ddd\myfile.txt c:\aaa\111\222\333\444\mytext.txt
Ответ 4
Продолжая на Арунс ответ:
md c:\aaa\111\222\333\444\mytext.txt
rd c:\aaa\111\222\333\444\mytext.txt
move c:\aaa\bbb\ccc\ddd\myfile.txt c:\aaa\111\222\333\444\mytext.txt
Это создает папку mytext.txt
и ее родителей, а затем удаляет ее, но не родителей.
Больше удовольствия:
call :move_md "c:\aaa\bbb\ccc\ddd\myfile.txt" "c:\aaa\111\222\333\444\mytext.txt"
call :move_md "c:\aaa\bbb\ccc\ddd\myfile1.txt" "c:\aaa\111\222\333\444\mytext4.txt"
call :move_md "c:\aaa\bbb\ccc\ddd\myfile2.txt" "c:\aaa\111\222\333\444\mytext5.txt"
call :move_md "c:\aaa\bbb\ccc\ddd\myfile3.txt" "c:\aaa\111\222\333\444\mytext6.txt"
goto :eof
:move_md
md %2
rd %2
move %1 %2
goto :eof
Ответ 5
Допустим, у вас есть следующая структура каталогов.
C:\aaa\bbb\ccc\ddd
вы хотите создать каталог под 111a под aaa, затем 222 под 111, затем 333 под 444 и так далее
Window cmd позволяет создавать структуру каталогов, предоставляя многоуровневый путь
таким образом, md c:\aaa\111\222\333\444
создаст всю директорию до 444.
Вы можете сначала создать каталог, а затем выполнить перемещение