Hi all I have a script that worked great to clear out a file with XP and windows xp
and works great on servers when run for a 2003 server
Im trying to modify it to work on windows 7 64bit as we have an autocad virus multiplying and I need to crush it on end users machines, now i just dabble in code and grab some from sites but this has been great in the past see code below however when I run it one windows 7 64 bit it errors out and says like 10 character 3
Permission denied
Any help would be great so I dont have to manually search each machine in our office
START_FOLDER = "D:\"PREFIX = "acad.lsp"Set oFSO = CreateObject("Scripting.FileSystemObject")ProcessSubFolders oFSO.GetFolder(START_FOLDER), iCountSub ProcessSubFolders(oFolder, iCount) Set cFiles = oFolder.Files For Each oFile In cFiles If Left(oFile.Name, Len(PREFIX)) = PREFIX Then oFile.Delete iCount = iCount + 1 End If Next For Each oSubFolder In oFolder.SubFolders ProcessSubFolders oSubFolder, iCount NextEnd SubWScript.Echo "Files deleted: " & iCount
Are you running as an administrator? Try that. Your issue appears to be NTFS permissions based, not script based. The user running this does not have appropriate access to the path you are looking at.
Bill Prew
What is the Windows system drive, C: or D:?
~bp
tgphelp
ASKER
System drive is c I've tried both and running as the domain admin on the computer as well as the local admin
Have tried launching from elevated cmd but same issue
I've tried this on my home computer with same results to make sure it wasn't a domain gpo stopping it
Qlemo
Locate the path the message is caused by, e.g. by printing out each path processed.
You can also ignore the error with on error resume next, but that should be the means of last resort only.
My take is that you have virtual folders on D:. Those came starting with Vista/2008 to stay "compatible" with prior releases, as predefined paths changed a lot then. Example is Documents and Settings, which is Users now.
tgphelp
ASKER
What would I add to the code to show that right now targeting each drive and get the number of files deleted
Give this a try, it will skip folders it can't access.
START_FOLDER = "D:\"PREFIX = "acad.lsp"Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")ProcessSubFolders objFSO.GetFolder(START_FOLDER, intCount)Sub ProcessSubFolders(objFolder, intCount) On Error Resume Next For Each objFile In objFolder.Files If Left(objFile.Name, Len(PREFIX)) = PREFIX Then Wscript.Echo "Deleted file: " & objFile.Path objFile.Delete intCount = intCount + 1 End If Next If Err.Number = 0 Then For Each objSubFolder In objFolder.Subfolders ProcessSubFolders objSubFolder, intCount Next Else Wscript.Echo "Skipped folder: " & objFolder.Path End IfEnd SubWScript.Echo "Files deleted: " & intCount
Bill thanks so much for the help its working it seems but there is one thing that is off it seems to count the skipped files/folders in the count so say it skipped 7 folders and there were no files to delete it says deleted 7 files
any quick adjustment so that doesnt count skips as deletes? thats so much for the help!
Bill Prew
Not positive is this will work, but give it a try...
START_FOLDER = "D:\"PREFIX = "acad.lsp"Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")ProcessSubFolders objFSO.GetFolder(START_FOLDER), intCountSub ProcessSubFolders(objFolder, intCount) On Error Resume Next For Each objFile In objFolder.Files If Left(objFile.Name, Len(PREFIX)) = PREFIX Then objFile.Delete If Err.Number = 0 Then Wscript.Echo "Deleted file: " & objFile.Path intCount = intCount + 1 End if End If Next If Err.Number = 0 Then For Each objSubFolder In objFolder.Subfolders ProcessSubFolders objSubFolder, intCount Next Else Wscript.Echo "Skipped folder: " & objFolder.Path End IfEnd SubWScript.Echo "Files deleted: " & intCount