在VBS中创建txt文件时,如何在路径中添加%USERNAME%?

时间:2019-04-08 16:17:53

标签: vbscript

我正在编码一个新的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。

2 个答案:

答案 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