3

отредактированный

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

move e:\rootfolder\sourcefolder c:\rootfolder\destfolder

Я получаю Access is denied .

Обратите внимание, что исходный диск e: и пункт назначения c:. Я считаю, что первый ответчик был прав насчет того, что это проблема с cmd.exe. Я дам ему время, прежде чем я отмечу их ответ.

2 ответа2

3

Похоже, это ожидаемое поведение (по какой-то странной причине) при попытке перемещения папок между дисками.

http://technet.microsoft.com/en-us/library/hh849852.aspx

Move-Item будет перемещать файлы между дисками, которые поддерживаются одним и тем же поставщиком, но он будет перемещать каталоги только в пределах одного диска.

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

0

Это, по меньшей мере, обходной метод, но, поскольку я часто сталкиваюсь с этим, я нашел решение, которое выполняет то же самое без существенной разницы в скорости. Требуется, чтобы у вас был установлен 7z.exe (можно скачать здесь), и он был добавлен в ваш путь. 7z - быстрый архиватор командной строки, поэтому это также можно сделать с помощью tar.exe , gzip.exe и т.д.

Я делаю что-то вроде следующего:

7z a x:\destinationfolder\tmp.7z c:\directoryyouwanttomove && ^
7z x x:\destinationfolder\tmp.7z

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

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