Отказано в доступе при попытке переместить файл через командную строку

Отказано в доступе при попытке переместить файл через командную строку

Отредактировано

Мне нужно переместить подпапку в другую подпапку. Когда я использую эту команду:

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

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

Связанный контент