我正在编码一个新的VBS脚本,该脚本应该在Documents目录中创建一个TXT文件。在使用其他输入的情况下,我将%USERNAME%用作PC的用户名,命令“ CreateTextFile”似乎要使用真实目录,而没有包括%USERNAME%这样的变量。
我对此很陌生,所以我无法弄清楚。
这就是我尝试过的:
Dim objFS, objFile
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.CreateTextFile("C:\Users\%USERNAME%\Documents\Demo.txt", true)
objFile.WriteLine("some sample text")
它应该将%USERNAME%理解为PC的用户名,但不能。
我得到的结果是程序说他找不到目录C:\ Users \%USERNAME%\ Documents。
答案 0 :(得分:0)
要使用台式机
SpecialFolders属性
返回SpecialFolders对象(特殊文件夹的集合)。
object.SpecialFolders(objWshSpecialFolders)
参数
对象WshShell对象。
objWshSpecialFolders特殊文件夹的名称。 (例如台式机)
环境字符串不会扩展。您可以传递包含环境变量的整个字符串。 EG "%userprofile%\Desktop"
。这段代码列出了所有可用的https://pastebin.com/rrEyVxFd变量。
ExpandEnvironmentStrings方法
返回环境变量的扩展值。
object.ExpandEnvironmentStrings(strString)
参数
对象WshShell对象。
strString字符串值,指示环境变量的名称 您想扩展。
答案 1 :(得分:0)
有很多较长的引出项是合适的,但这只是几个例子-容易得多:
Option Explicit
Msgbox CreateObject("WScript.Network").UserName
' or into a variable
Dim oShell : set oShell = CreateObject("WScript.Network")
Dim UserName : UserName = oShell.UserName
Msgbox UserName
Set oShell = Nothing