2016-12-03 79 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