Solved

VBSCRIPT to delete all files and folers in a directory

Posted on 2009-07-16
11
580 Views
Last Modified: 2012-05-07
I have a vbscript that I can't get to work properly. I need to delete all files and folders in a directory. When this runs, I get:

line 12
char 7
error permission denied
code 800a0047
microsoft vbscript runtime error


I really thought this was working for a while...Can anyone fix this for me?

dim fso, exchfolder,folder,collfolder,collfiles,file
Set fso   = WScript.CreateObject("Scripting.FileSystemObject")
set exchfolder = fso.GetFolder("E:\Exchange Backups\")  ' the target folder
 
Set collfiles=exchfolder.Files  'delete files under target folder
      for each file in collfiles
      file.delete
      next
 
Set collfolder=exchfolder.subfolders 'delete subfolders and files under targetfolder
      for each folder in collfolder
      folder.delete
      next

Open in new window

0
Comment
Question by:FIFBA
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 5
11 Comments
 
LVL 67

Expert Comment

by:sirbounty
ID: 24870252
Try this slight modification...
dim fso, exchfolder,folder,collfolder,collfiles,file
Set fso   = WScript.CreateObject("Scripting.FileSystemObject")
set exchfolder = fso.GetFolder("E:\Exchange Backups\")  ' the target folder
 
Set collfiles=exchfolder.Files  'delete files under target folder
      for each file in collfiles
      file.delete
      next
 
Set collfolder=exchfolder.subfolders 'delete subfolders and files under targetfolder
      for each folder in collfolder
      fso.DeleteFolder folder, True
      next

Open in new window

0
 

Author Comment

by:FIFBA
ID: 24870345
Thanks for the fast response. I'm getting the same results with the modification in place.
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 24870364
Can you add an echo/popup to that loop to determine which folder?
Presumably it's permissions to the folder - I'd check security:
Set collfolder=exchfolder.subfolders 'delete subfolders and files under targetfolder
      for each folder in collfolder
wscript.echo "Attempting to delete " & folder
      fso.DeleteFolder folder, True
      next

Open in new window

0
The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

 

Author Comment

by:FIFBA
ID: 24870500
I see now...This is actually deleting files inside of a Microsoft DFS folder. Admin has permissions to it but it is choking on a DFS system file. How can I exclude the C:\Exchange Backups\dfsrprivate file?
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 24870518
Place a

If Not lcase(folder)="c:\exchange backups\dfsrprivate" then
before the delete...

That or try scheduling it to run under the system credentials - that might work...
0
 

Author Comment

by:FIFBA
ID: 24870574
Could you post the entire script for me? Not a vbscript guy... thanks.

0
 
LVL 67

Accepted Solution

by:
sirbounty earned 500 total points
ID: 24870599

dim fso, exchfolder,folder,collfolder,collfiles,file
Set fso   = WScript.CreateObject("Scripting.FileSystemObject")
set exchfolder = fso.GetFolder("E:\Exchange Backups\")  ' the target folder
 
Set collfiles=exchfolder.Files  'delete files under target folder
      for each file in collfiles
      file.delete
      next
 
Set collfolder=exchfolder.subfolders 'delete subfolders and files under targetfolder
      for each folder in collfolder
      If Not lcase(folder)="c:\exchange backups\dfsrprivate" then fso.DeleteFolder folder, True
      next

Open in new window

0
 

Author Comment

by:FIFBA
ID: 24870623
I get line 12 char 67 error...perm denied.
0
 

Author Comment

by:FIFBA
ID: 24870689
Nevermind....the path was wrong....directory is on E drive. Thanks for the help!!
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 24870750
more perhaps that are preventing the deletion?
0
 
LVL 67

Expert Comment

by:sirbounty
ID: 24870757
Ah - didn't refresh...
Glad I could help - thanx for the grade! :^)
0

Featured Post

What Is Transaction Monitoring and who needs it?

Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Deploying a Microsoft Access application in a Citrix environment is not difficult but takes a few steps. However, Citrix system people are often of little help, as they typically know next to nothing about Access. The script provided here will take …
With User Account Control (UAC) enabled in Windows 7, one needs to open an elevated Command Prompt in order to run scripts under administrative privileges. Although the elevated Command Prompt accomplishes the task, the question How to run as script…
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…

729 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question