vbscript - 如何在 VBScript 中使用 %username%
问题描述
我一直在尝试让以下脚本与当前登录的用户一起使用:
On Error Resume Next
Set oFileSys = WScript.CreateObject("Scripting.FileSystemObject")
sRoot = "C:\users\MyUsername\downloads"
today = Date
nMaxFileAge = 30
DeleteFiles(sRoot)
Function DeleteFiles(ByVal sFolder)
Set oFolder = oFileSys.GetFolder(sFolder)
Set aFiles = oFolder.Files
Set aSubFolders = oFolder.SubFolders
For Each file in aFiles
dFileCreated = FormatDateTime(file.DateCreated, "2")
If DateDiff("d", dFileCreated, today) > nMaxFileAge Then
file.Delete(True)
End If
Next
For Each folder in aSubFolders
DeleteFiles(folder.Path)
Next
End Function
现在,当我专门定义 的“MyUsername”部分时,这可以正常工作sRoot=
,但我希望这是一个变量。我在其他帖子中尝试了很多建议,但似乎无法让它发挥作用。
我将在启动时将其部署到具有不同用户的几台机器上,这就是为什么它需要成为一个变量,因为我不知道谁将在任何给定时间登录到这些计算机。
解决方案
从帮助
返回环境变量的扩展值。
object.ExpandEnvironmentStrings(strString)
object
WshShell 对象。
str
细绳
字符串值,指示要扩展的环境变量的名称。
该
ExpandEnvironmentStrings
方法仅扩展在 PROCESS 环境空间中定义的环境变量。环境变量名称必须用“%”字符括起来,不区分大小写。以下代码展开 Windows Directory 环境变量并显示它:
Visual Basic 脚本
set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo "WinDir is " & WshShell.ExpandEnvironmentStrings("%WinDir%")
首选的方法是
返回用户的名称。
object.UserName object
WshNetwork 对象。
*Returns a string.*
如果您在登录脚本中使用此属性,请参阅创建自动登录脚本。
以下示例演示了 UserName 属性的使用:
Set WshNetwork = WScript.CreateObject("WScript.Network") WScript.Echo "Domain = " & WshNetwork.UserDomain WScript.Echo "Computer Name = " & WshNetwork.ComputerName WScript.Echo "User Name = " & WshNetwork.UserName
推荐阅读
- reactjs - WordPress 作为带有 Next.js 的无头 CMS - 使用代码突出显示片段呈现帖子内容的问题
- c++ - 如何为 clang 的 C++20 功能正确设置 ccls?
- flutter - 如何去除脚手架中的晶圆厂底部填充物
- nginx - 动态位置块变量到字符串
- python - 如何使用python从动态网页中收集表格数据
- spring-boot - 如何在 Spring Boot 项目的某些模块上配置自定义 Pitest Gradle 任务?
- ios - 为什么 ViewController 后退按钮在 Xcode 上不起作用?
- python - 在python中获取下一个12个月的最大值
- bash - AWS localstack 和 dotnetcore3.1 lambda 函数 - 无法创建函数
- vuejs2 - Vue 计算属性改变存储状态