У меня есть vbs, который я написал.В чем разница между методом FSO.DeleteFolder() и oWS.Run «% comspec%/c rmdir ...», 1, True?
Set FSO = CreateObject("Scripting.FileSystemObject")
Set oWS = CreateObject("WScript.Shell")
Set objFolderUsers = FSO.GetFolder("\\"& strComputer &"\C$\Users\").Subfolders
...
Позже, я что-то вроде:
For Each objFlder In objFolderUsers
user = Right(objFlder, Len(objFlder) - InStrRev(objFlder, "\"))
temp = objFlder & "\AppData\Local\Temp\"
'That's the line !...
If FSO.FolderExists(temp) Then FSO.DeleteFolder(temp)
If Not IsExcludeProfile(user) Then
If Left(objFlder.DateLastModified, 4) <= minYear Then
oWS.Run "%comspec% /c rmdir " & objFlder & " /s /q", 0, True
oWS.Run "%comspec% /c net user " & user & " /delete", 0, True
End If
End If
Next
мой вопрос: Есть ли разница между FSO.DeleteFolder (темп) и oWS.Run «% COMSPEC%/с RmDir «& temp, 1, True, потому что когда я делаю первое, все в порядке, но когда я делаю второй (oWS.Run) И objFlder =« По умолчанию », все это удаляется, а не только Temp, как я хочу. .
похоже, что вы передаете 'objFlder' в oWS.Run вместо полного пути к папке, которая является' temp' – WhiteHat
Я использовал для прохождения темпа ..... ** "% comspec%/c rmdir "& temp, 1, True ** –
Зачем использовать' oWS.Run', чтобы сделать все так же просто, как удалить папку? Вы уже используете 'FileSystemObject' для итерации через объекты' Folder', поэтому почему бы не использовать ['objFlder.Delete (True)'] (https://msdn.microsoft.com/en-us/library/0k4wket3 (v = vs.84) .aspx)? – Lankymart