使用VBA获取回显批处理文件答案

时间:2018-08-10 10:05:44

标签: excel vba batch-file

在我的VBA代码中,我使用Call Shell(....)来称呼蝙蝠。

我现在需要在VBA的批处理文件中获取“回显答案”。

我该怎么做?

我的批处理文件:

@echo off
IF exist %3 (robocopy %1 %2 /e ) ELSE (echo 1)

我想在VBA中获得那个“ 1”。

1 个答案:

答案 0 :(得分:2)

您无法使用Call Shell返回答案。您需要使用WScript.Shell,并且可以使用它返回的执行对象中的读取行。

Dim sh As Object
Set sh = CreateObject("WScript.Shell")
Dim ex As Object
Set ex = sh.Exec("C:\Path\To\File.bat")
Dim ans As String
ans = ex.StdOut.ReadAll

速记,如果要保存行:

Dim ans As String
ans = CreateObject("WScript.Shell").Exec("C:\Path\To\File.bat").StdOut.ReadAll