首页 > 解决方案 > 一个接一个地执行两个 .bat 文件的 VBA 代码

问题描述

我正在尝试编写一个代码来创建和执行两个批处理脚本,一个接一个。第一个制作我的 pdf 文件(makecopies.bat)的给定数量的副本,第二个根据名称列表更改副本的名称。因此,在第 2 次运行之前完成第 1 次的执行至关重要。这就是为什么我避免使用Call Shell("cmd.exe /k cd " & CurDir & " && makecopies.bat", vbHide)- 我尝试过它,它会导致脚本的重叠执行。

相反,我试图让它与 WScript.Shell 一起工作,因为该方法允许设置waitOnReturn值。但是,问题如下(我需要执行两个脚本,我以一个为例):

 Dim wsh As WshShell
 Set wsh = New WshShell
 Dim makecopies As String
 Dim script_makecopies As Long
                
 Open CurDir & "\makecopies.bat" For Output As #FileNumber
 Print #FileNumber, Range("B2").Value
 Close #FileNumber
                
 makecopies = CurDir & "\makecopies.bat"

 script_makecopies = wsh.Run(makecopies, windowStyle:=0, waitOnReturn:=True)

有谁知道我怎样才能让它工作?(先感谢您!)

标签: excelvbabatch-filewscript.shell

解决方案


推荐阅读