Vbscript 查找当前用户

Vbscript 查找当前用户,vbscript,Vbscript,我正在尝试编写一个VBS脚本来复制另一台计算机上的文件,而无需在脚本中手动输入它们的用户名。它说脚本中的用户就是我需要放置当前用户的地方 Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FolderExists("C:\Users\USER\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\")) Then FSO.CopyFile "V.VB

我正在尝试编写一个VBS脚本来复制另一台计算机上的文件,而无需在脚本中手动输入它们的用户名。它说脚本中的用户就是我需要放置当前用户的地方

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

例如,有几种方法可以获取当前用户的名称

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))

FSO.CopyFile“V.VBS”,“startup”不适用于复制我该怎么做?您将使用变量
startup
而不是字符串
“startup”
。修复了所有错误,除了“startup”缺少反斜杠谢谢!