You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBScript中%username%的等效写法:删除当前用户OfficeFileCache文件夹

解决VBScript中无法使用%username%获取用户目录的问题

嘿,我看到你的问题了——VBScript不像CMD那样直接识别%username%这种环境变量写法,得用它自己的方法来获取用户相关路径。另外先提个小细节:你的taskkill命令里多写了一个.exe(比如msouc.exe.exe),这会导致命令找不到进程,得改成msouc.exe和msosync.exe哦!

下面给你两种靠谱的解决方法:

方法1:通过环境变量获取用户名

用WScript.Shell的Environment方法读取USERNAME环境变量,然后拼接成完整路径:

Option Explicit
Dim objShell : Set objShell = CreateObject("WScript.Shell")
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim userName : userName = objShell.Environment("PROCESS")("USERNAME")
Dim cacheFolder : cacheFolder = "C:\Users\" & userName & "\AppData\Local\Microsoft\Office\16.0\OfficeFileCache"

' 先结束相关进程(注意修正了.exe的重复问题)
objShell.Run "taskkill /f /im msouc.exe", 0
objShell.Run "taskkill /f /im msosync.exe", 0

' 删除缓存文件夹,先检查存在性避免报错
If fso.FolderExists(cacheFolder) Then
    fso.DeleteFolder cacheFolder, True
End If

方法2:直接获取LocalAppData路径(更稳妥)

这种方法不需要拼接用户名,直接获取用户的AppData\Local文件夹,兼容性更好(比如遇到非默认用户目录的系统也能正常工作):

Option Explicit
Dim objShell : Set objShell = CreateObject("WScript.Shell")
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim localAppData : localAppData = objShell.SpecialFolders("Local AppData")
Dim cacheFolder : cacheFolder = localAppData & "\Microsoft\Office\16.0\OfficeFileCache"

' 结束相关进程(修正了重复的.exe)
objShell.Run "taskkill /f /im msouc.exe", 0
objShell.Run "taskkill /f /im msosync.exe", 0

' 删除前先检查文件夹是否存在,避免抛出错误
If fso.FolderExists(cacheFolder) Then
    fso.DeleteFolder cacheFolder, True
End If

我特意加了文件夹存在性判断,这样如果缓存文件夹本来就不存在,脚本不会报错,运行起来更健壮。

内容的提问来源于stack exchange,提问作者Jclay34

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:22:41