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

如何让批处理文件在其所在文件夹内执行处理操作?

解决思路

方法1:通过VBS设置批处理的工作目录

利用WScript.Shell的CurrentDirectory属性,先把工作目录切换到批处理所在的文件夹,再执行批处理,就能让批处理在自身目录下运行。

修改后的代码:

JobNo = InputBox("Input Job Number")
strfolder = InputBox("Input the job name: ex. Monthly Statements, or Brochures")

' 拼接批处理的完整路径
batFullPath = "C:\TEST\" & JobNo & " " & strfolder & "\Processing\Suppressions.bat"

Set objShell = WScript.CreateObject("WScript.Shell")
' 提取批处理所在的目录(截取路径中最后一个反斜杠之前的部分)
batDirectory = Left(batFullPath, InStrRev(batFullPath, "\"))
' 设置当前工作目录为批处理所在文件夹
objShell.CurrentDirectory = batDirectory
' 执行批处理
objShell.Run """" & batFullPath & """"

方法2:通过cmd命令切换目录后执行

直接在Run方法里调用cmd,先切换到批处理所在目录再执行,同样不用修改批处理文件:

修改后的代码:

JobNo = InputBox("Input Job Number")
strfolder = InputBox("Input the job name: ex. Monthly Statements, or Brochures")

batFullPath = "C:\TEST\" & JobNo & " " & strfolder & "\Processing\Suppressions.bat"
batDirectory = Left(batFullPath, InStrRev(batFullPath, "\"))

Set objShell = WScript.CreateObject("WScript.Shell")
' 用cmd /c 先切换目录再运行批处理
objShell.Run "cmd /c cd /d """ & batDirectory & """ && """ & batFullPath & """"

这两种方法都不用改动批处理文件本身,靠VBS控制执行环境,就能让批处理在自己所在的文件夹里运行,解决了从桌面路径执行的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:50:02