Отредактировано
Мне нужно переместить подпапку в другую подпапку. Когда я использую эту команду:
move e:\rootfolder\sourcefolder c:\rootfolder\destfolder
Я получил Access is denied
.
Обратите внимание, что исходный диск — e:, а целевой — c:. Я считаю, что первый ответчик был прав, когда говорил, что проблема в cmd.exe. Я подожду некоторое время, прежде чем отмечу его ответ.
решение1
Похоже, это ожидаемое поведение (по какой-то странной причине) при попытке перемещения папок между дисками.
http://technet.microsoft.com/en-us/library/hh849852.aspx
Move-Item перемещает файлы между дисками, поддерживаемыми одним и тем же провайдером, но перемещает каталоги только в пределах одного диска.
Я знаю, что в этой ссылке говорится, что это применимо к Windows Powershell, но я только что проверил на своем компьютере с XP здесь, на работе, и увидел точно такое же поведение, поэтому я полагаю, что это применимо и к cmd.exe.
решение2
Это, мягко говоря, обходной метод, но поскольку я часто с этим сталкиваюсь, я придумал решение, которое делает то же самое без большой разницы в скорости. Требуется, чтобы у вас был 7z.exe
(можно загрузитьздесь) установлен и добавлен в ваш путь. 7z — это быстрый архиватор командной строки, поэтому это также можно сделать с помощью tar.exe
, gzip.exe
и т. д.
Я делаю что-то вроде следующего:
7z a x:\destinationfolder\tmp.7z c:\directoryyouwanttomove && ^
7z x x:\destinationfolder\tmp.7z
Я понимаю, что это уже давно не актуально, и я не отвечаю конкретно на вопрос автора, но мне было очень трудно найти где-либо документальное подтверждение этому, и, возможно, я смогу избавить кого-то от лишних хлопот.