Batch delete: Access is denied
I'm having issues with the del
command in a batch file. When it gets to the delete step I get the message "Access is denied". My batch command looks something like this.
set destPath=\\Public01\Appl\CompOps\Jobs\
robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS
pushd "%destPath%"
del *.dtsConfig
ren *.dev .
popd
I can browse to the directory and delete the files without any problem in Windows Explorer.
I tried running as administrator, but still the same issue.
Solution 1:
To force a del
command to delete read-only files, add the /F
flag.
Apparently, a read-only file cannot normally be deleted by a batch file, although it can still be deleted through Windows Explorer. To check if your file is read-only, you can right click on the file and select properties, or enter attrib <filename>
at the command prompt. This will show a series of letters corresponding to different file attributes.
R = Read-only file
A = Archive file
S = System file
H = Hidden file
You can remove the read-only tag by unchecking the box in the properties window or running the command attrib <filename> -R
.
Solution 2:
After experimenting with the options available to the "del" command I discovered that the files I was attempting to delete were read-only. To resolve the problem I could either edit the files to remove the read-only attribute, or specify the /F option.
Final script is
set destPath=\\Public01\Appl\CompOps\Jobs\
robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS
pushd "%destPath%"
del /F *.dtsConfig
ren *.dev .
popd
Simple solution, but a misleading error message. Hopefully this helps someone else.
Solution 3:
What worked for my Windows 8.1 PC:
First of all close Windows Explorer by:
Press Ctrl + Alt + Del for opening Task Manager, go to processes, find Windows Explorer, right click, and end task. Don't worry if start bar is gone and something else. Use Alt + Tab for traversing between files. Then in Task Manager click File and Run new task, and type cmd
. This will open you a Command Line.
Inside the Terminal:
If your version is 32 bit, and it is in my case, it's located in Program Files (x86), so you should type:
cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll
This was for unregistering.
You can traverse between directories using cd directoryname
and you can get back one directory by cd ..
. For viewing what is in a directory you can type dir
in when you are in that directory. For deleting the file type:
del /F filename
After that again open the Task Manager, go to File, then run explorer
.
This way you will get to usual display. Go to the Git folder which we wanted to get rid of and delete it simply.
I hope this works for other people who are using Windows 8.1.