2016-02-21 38 views
0

我需要使用vbscript刪除一些瀏覽器文件。 我有簡單的批處理代碼像使用VBScript刪除變量目錄中的文件

del /q /s /f "C:\Users\%USERNAME%\AppData\Roaming\Opera Software\Opera Stable\Current Session" 
rd /s /q "C:\Users\%USERNAME%\AppData\Roaming\Opera Software\Opera Stable\Current Session" 

在VBS

Set obj = CreateObject("Scripting.FileSystemObject") 
obj.DeleteFile("C:\Users\%USERNAME%\AppData\Roaming\Opera Software\Opera Stable\Current Session") 

問題是,VBS不識別變量%USERNAME%,我得到錯誤「這個目錄中沒有文件」。 有人能告訴我如何用這種語言編寫可變目錄/路徑嗎?

+0

刪除C++標籤,因爲這是不相關的。 –

回答

2

從幫助。

返回環境變量的擴展值。

object.ExpandEnvironmentStrings(strString) 

imageArguments 對象 WshShell對象。

strString 字符串值,指示您要展開的環境變量的名稱。

備註 ExpandEnvironmentStrings方法只擴展在PROCESS環境空間中定義的環境變量。環境變量名稱必須包含在「%」字符之間,不區分大小寫。如果你想這樣做你使用遞歸VBS

Visual Basic腳本

set WshShell = WScript.CreateObject("WScript.Shell") 
WScript.Echo "WinDir is " & WshShell.ExpandEnvironmentStrings("%WinDir%") 

imageExample 下面的代碼擴展Windows目錄環境變量並顯示。

On Error Resume Next 
Set fso = CreateObject("Scripting.FileSystemObject") 
ProcessFolder "c:\users\david candy\documents" 

Sub ProcessFolder(FolderPath) 
    Set fldr = fso.GetFolder(FolderPath) 
    Set Fls = fldr.files 
    For Each thing in Fls 
     wscript.echo thing.path 
    Next 
    Set fldrs = fldr.subfolders 
    For Each thing in fldrs 
'  wscript.echo thing.name 
     ProcessFolder thing.path 
    Next 
End Sub 
1

你可以試試:

Set objFSO = CreateObject("Scripting.FileSystemObject") 
set WshShell = CreateObject("WScript.Shell") 
UserProfile = WshShell.ExpandEnvironmentStrings("%USERPROFILE%") 
Wscript.echo UserProfile 
Wscript.echo UserProfile &"\AppData\Roaming\Opera Software\Opera Stable\Current Session" 
AppData = WshShell.ExpandEnvironmentStrings("%AppData%") 
Wscript.echo AppData 
Wscript.echo AppData &"\Opera Software\Opera Stable\Current Session" 
If objFSO.FolderExists(AppData &"\Opera Software\Opera Stable\Current Session") Then 
    objFSO.DeleteFolder AppData &"\Opera Software\Opera Stable\Current Session" 
End If 
+0

你能給我mail/jabber/icq給你嗎? – fckVBS