2016-12-03 80 views
-1

我正在嘗試編寫VBS腳本來在另一臺計算機上覆制文件,而無需手動將其用戶名輸入到我的腳本中。在腳本中,USER說的是我需要放置當前用戶的地方。正在查找當前用戶

Set fso = CreateObject("Scripting.FileSystemObject") 
If (fso.FolderExists("C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\")) Then 
    FSO.CopyFile "V.VBS", "C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\" 
    FSO.CopyFile "M.mp3", "C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\" 
Else 
End If 

回答

-1

有幾種方法來獲取當前用戶的名稱,例如

Set net = CreateObject("WScript.Network") 
username = net.UserName 

或擴展%USERNAME%環境變量

Set sh = CreateObject("WScript.Shell") 
username = sh.ExpandEnvironmentVariables("%USERNAME%") 

一旦你的usrename即可建立如下的路徑字符串:

Set fso = CreateObject("Scripting.FileSystemObject") 
profile = fso.BuildPath("C:\Users", username) 
startup = fso.BuildPath(profile, "AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup") 

既然你與用戶的AppData文件夾的子文件夾時,您也可以擴大%APPDATA%變量,而不是%USERNAME%變量:

Set sh = CreateObject("WScript.Shell") 
Set fso = CreateObject("Scripting.FileSystemObject") 

appdata = fso.BuildPath("C:\Users", sh.ExpandEnvironmentVariables("%APPDATA%")) 
startup = fso.BuildPath(appdata, "Microsoft\Windows\Start Menu\Programs\Startup") 

另一種選擇是讀取啓動文件夾位置並展開返回的路徑字符串中的環境變量:

regpath = "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Startup" 

Set sh = CreateObject("WScript.Shell") 
startup = sh.ExpandEnvironmentStrings(sh.RegRead(regpath)) 
+0

FSO.CopyFile「V.VBS」,「startup」不適用於複製,我該怎麼做? – dgm2004

+0

您將使用變量'startup'而不是字符串'「startup」'。 –

+0

修正了除「啓動」之外的所有錯誤都是一個缺失的反斜槓謝謝! – dgm2004