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

如何解决通过Python调用Wscript.exe运行循环型VBScript时出现的80070002文件未找到错误?

解决Python调用循环VBScript时的文件找不到错误(错误80070002)

嘿,我来帮你搞定这个问题!你遇到的错误80070002其实是工作目录不匹配搞的鬼,咱们一步步拆解原因和解决方案:

问题到底出在哪?

当你直接双击runme.vbs时,系统会把VBS所在的extras文件夹作为它的工作目录,所以VBS里的WSHShell.Run "runme.vbs"能顺利找到自己。

但用Python的subprocess.Popen启动wscript.exe时,VBS的工作目录变成了Python脚本的当前工作目录(也就是你运行Python脚本的那个文件夹),而不是extras文件夹。这时候VBS再找runme.vbs,自然就找不到了,于是抛出“找不到文件”的错误。

两种简单的修复方法

方法1:给VBScript加上绝对路径(最靠谱)

修改你的runme.vbs,让它获取自己的绝对路径,不管在哪运行都能找到自己:

X = MsgBox("Hello world!", 64)
Set WSHShell = WScript.CreateObject("WScript.Shell")
' 获取当前VBS文件的完整绝对路径
scriptFullPath = WScript.ScriptFullName
WSHShell.Run scriptFullPath

这样不管是双击运行,还是被Python调用,VBS都能精准定位到自己,循环就不会出错了。

方法2:修改Python脚本,指定工作目录

如果你不想改VBS,也可以在Python调用subprocess时,强制把工作目录设置为extras文件夹,这样VBS运行时的工作目录就和它自己所在的文件夹一致了:

import os, subprocess
workingdir = os.getcwd()
programname = "wscript.exe"
filename = "runme.vbs"
# 拼接出extras文件夹的路径
extras_folder = os.path.join(workingdir, "extras")
# 拼接VBS文件的绝对路径(也可以直接用filename,因为指定了cwd)
file_path = os.path.join(extras_folder, filename)
print(file_path)
# 关键:用cwd参数指定工作目录为extras文件夹
subprocess.Popen([programname, filename], cwd=extras_folder)

小提醒

  • 方法1更通用,就算以后把VBS移到别的文件夹,也不用改代码;
  • 方法2要确保Python脚本能正确找到extras文件夹,如果Python脚本不在extras的上级目录,可能需要调整路径拼接逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 13:59:09