Batch delete: acceso denegado

10

Tengo problemas con el delcomando en un archivo por lotes. Cuando llega al paso de eliminación, aparece el mensaje "Acceso denegado". Mi comando por lotes se parece a esto.

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del *.dtsConfig
ren *.dev .
popd

Ingrese la descripción de la imagen aquí

Puedo buscar el directorio y eliminar los archivos sin ningún problema en el Explorador de Windows .

Traté de correr como administrador, pero sigue siendo el mismo problema.

agradl
fuente

Respuestas:

7

Para forzar a un delcomando a eliminar archivos de solo lectura, agregue la /Fbandera.

Aparentemente, un archivo de solo lectura normalmente no se puede eliminar mediante un archivo por lotes, aunque aún se puede eliminar a través del Explorador de Windows . Para verificar si su archivo es de solo lectura, puede hacer clic derecho en el archivo y seleccionar propiedades, o ingresar attrib <filename>en el símbolo del sistema. Esto mostrará una serie de letras correspondientes a diferentes atributos de archivo.

R = Read-only file
A = Archive file
S = System file
H = Hidden file

Puede eliminar la etiqueta de solo lectura desmarcando la casilla en la ventana de propiedades o ejecutando el comando attrib <filename> -R.

SaintWacko
fuente
lamentablemente eso no soluciona el problema, aunque actualizaré mi pregunta para incluir su sugerencia.
agradl
Intente poner pauseantes del delcomando, y luego intente eliminarlo a través del Explorador de Windows mientras está en pausa.
SaintWacko
Encontré la solución, sin embargo, si desea editar su respuesta para incluir algunas sugerencias además de mi solución, me complacería marcarla como la respuesta
agradl
Muy bien, ¿es esa información útil retroactivamente? :)
SaintWacko
Estoy seguro de que será muy útil cuando me olvido de este problema meses a partir de ahora :)
agradl
2

Después de experimentar con las opciones disponibles para el comando "del", descubrí que los archivos que intentaba eliminar eran de solo lectura. Para resolver el problema, podría editar los archivos para eliminar el atributo de solo lectura o especificar la opción / F.

El guión final es

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del /F *.dtsConfig
ren *.dev .
popd

Solución simple, pero un mensaje de error engañoso. Esperemos que esto ayude a alguien más.

agradl
fuente
Si solo puede leerlo, un acceso denegado me suena correcto.
surfasb
1

Lo que funcionó para mi PC con Windows 8.1:

En primer lugar, cierre el Explorador de Windows:

Presione Ctrl+ Alt+ Delpara abrir el Administrador de tareas , vaya a procesos, busque el Explorador de Windows , haga clic derecho y finalice la tarea . No se preocupe si la barra de inicio se ha ido y algo más. Use Alt+ Tabpara recorrer entre archivos. Luego, en el Administrador de tareas, haga clic en Archivo y ejecutar nueva tarea , y escriba cmd. Esto te abrirá una línea de comando .

Dentro de la terminal :

Si su versión es de 32 bits, y en mi caso, se encuentra en Archivos de programa (x86) , por lo que debe escribir:

cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll

Esto fue para cancelar el registro.

Puede recorrer los directorios mediante cd directorynamey puede recuperar un directorio por cd ... Para ver lo que hay en un directorio, puede escribir dircuando esté en ese directorio. Para eliminar el tipo de archivo:

del /F filename

Después de eso, abra nuevamente el Administrador de tareas , vaya a Archivo y luego ejecute explorer. De esta manera llegarás a la pantalla habitual. Vaya a la carpeta Git de la que queríamos deshacernos y elimínelo simplemente.

Espero que esto funcione para otras personas que usan Windows 8.1.

Tolga Varol
fuente