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

无法将VBScript移动至其他目录,提示“文件未找到”问题排查

问题分析与修正方案

核心问题点

  • 自身路径获取错误:原代码通过fso.GetAbsolutePathName(strFile)获取路径依赖当前工作目录,若脚本不在当前目录运行,会得到错误路径;正确方式是用WScript.ScriptFullName直接获取脚本自身的完整路径。
  • 环境变量未解析:%username%是系统环境变量,VBScript不会自动识别,需用WshShell.ExpandEnvironmentStrings展开才能得到正确的用户目录路径。
  • 路径拼接冗余:最后一行将已包含文件名的SourceLocation与FileName重复拼接,导致源路径无效;目标路径的多余引号也会让系统无法识别正确目录。

修正后的代码

Set objShell = CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

' 获取脚本自身的完整路径(含文件名)
strSelfPath = WScript.ScriptFullName
Wscript.Echo "当前脚本路径:" & strSelfPath
Wscript.Sleep 1000

' 解析环境变量,生成启动文件夹的完整路径
DestinationLocation = objShell.ExpandEnvironmentStrings("C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\")

' 移动脚本到启动文件夹,保留原文件名
fso.MoveFile strSelfPath, DestinationLocation & fso.GetFileName(strSelfPath)

关键说明

  • WScript.ScriptFullName:直接返回当前运行脚本的绝对路径(包含文件名),彻底避免工作目录带来的路径错误。
  • objShell.ExpandEnvironmentStrings:把%username%解析为当前登录用户的用户名,生成正确的启动文件夹路径。
  • fso.GetFileName(strSelfPath):从脚本完整路径中提取文件名,确保移动后的文件名称与原文件一致,逻辑更严谨。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:05:30