Pregunta Acceso denegado, cmd mover ventanas 7


No puedo usar este comando en Win 7 cuando quiero mover un directorio si el destino existe. Dice Acceso denegado. ¿Por qué se abre esto? Funcionó en XP.

move /y "%1" c:\mydir\

Puedo usar robocopy, pero solo moverá el contenido de la carpeta. no la carpeta completamente.

robocopy "%1" c:\mydir /E /IS /MOVE

¿Como puedó resolver esté problema?


6


origen


Al mover archivos, mover el comando funciona bien. Pero cuando el origen es una carpeta, falla si ya existe el destino y debe sobrescribirse. - Aziz
¿Funciona xcopy? Si es así, podría usar xcopy y luego eliminar la fuente como una solución alternativa.
Acceso denegado también puede significar "un archivo en esta carpeta o la misma carpeta aún está abierta por un programa en ejecución". - Robert
xcopy funciona bien, pero robocopy es mejor ya que no necesito eliminar los directorios copiados al final. Pero en este caso, solo puedo mover el contenido de la carpeta fuente porque quiero usar% 1. esto es horrible! - Aziz
Hice una nueva publicación con más información superuser.com/questions/339067 - Aziz


Respuestas:


Tratar:

IF EXIST "c:\mydir" (
     robocopy "%1" c:\mydir /E /IS /MOVE 
     ) ELSE (
     move /y "%1" c:\mydir 
     )

Esto verificará si la carpeta existe y moverá los contenidos si la carpeta existe y si la carpeta no sale, entonces moverá su carpeta. Si sigue teniendo acceso denegado, entonces probablemente necesita obtener privilegios de administrador.


4



Gracias por su respuesta, este fue un buen intento, pero no necesito verificar si mydir existe ... necesito verificar si% 1 es un directorio, luego verificar si existe una carpeta con el mismo nombre en mydir, y luego hacer exactamente lo que usted hace encima. comprobar superuser.com/questions/339067/... - Aziz


Por fin ... aquí está la solución ... Gracias por ayudar chicos :)

SET mydir=C:\mydir
IF EXIST "%mydir%\%~n1\" (
  ROBOCOPY %1 "%mydir%\%~n1" /E /IS /MOVE
) ELSE (
  MOVE /Y %1 "%mydir%\"
)

4





Si estás recibiendo ACCESS DENIED mensajes de error al intentar mover una carpeta, ya sea

  1. No tienes los permisos correctos para mover la carpeta
  2. No tiene los permisos correctos para mover uno o más de los archivos en la carpeta
  3. Uno o más archivos están siendo accedidos por el sistema / una aplicación
  4. Uno o más de los archivos están protegidos contra su eliminación.

Verifique todas estas posibilidades.


2



Tiene que ser otra cosa ... Por favor, inténtalo si tienes Win7. Cree un árbol de carpetas como este root \ aaa \ test \ a.txt y root \ bbb \ test \ b.txt, luego pruebe con "mover raíz \ aaa \ prueba raíz \ prueba" y "mover raíz \ mover \ probar raíz \ prueba "primero estará bien, pero el próximo fallará - Aziz
@Aziz, ¿estás pidiendo MOVE "C:\aaa\test" "C:\test" y entonces MOVE "C:\bbb\test" "C:\test"? No puedo probar ya que no tengo Win7, pero no tiene sentido que uno funcione pero no el otro. La única otra cosa que te viene a la mente es si tienes nombres de archivos idénticos en las carpetas aaa y bbb, y tratar de sobrescribirlos es volver ACCESS DENIED - Mechaflash
La opción MOVE con / Y funcionó bien en Windows XP. No he probado en Vista. Las carpetas de "prueba" en cada directorio (aaa, bbb, etc.) pueden tener varios archivos y carpetas iguales, por eso quiero fusionar esas carpetas. La operación es igual a arrastrar y soltar: mover cada carpeta "prueba" al mismo coloque una confirmación sobrescribiendo todo. Sin embargo, puedo obtener el mismo resultado con la operación xcopy o robocopy y luego eliminar la fuente. Puede MOVER y reemplazar archivos existentes, pero reemplazar directorios da un "Acceso denegado" en win7. Necesito resolver esto, O necesito ayuda para convertir el comando MOVE como mi intento en mi pregunta. - Aziz
Hice una nueva publicación con más información superuser.com/questions/339067 - Aziz
Estaba en el directorio que estaba tratando de mover (dir en uso) - Eric Fossum


Estoy cojo y no entiendo exactamente lo que las respuestas aquí están haciendo debajo del capó, así que se me ocurrió este copy / paste doozy

SET src=C:\dev
SET dest=D:\dev
IF EXIST %dest% (ROBOCOPY %src% %dest% /E /IS /MOVE) ELSE (MOVE /Y %src% %dest%)

0