0

假设如果我在单元格 C9 有值,那么下面的 sheet1 是我用于从 VBA 运行 .bat 脚本的代码

> Blockquote

Fileset = Sheet1.Range("C9")

txtFpath = Sheet1.Range("C7").Value
FilePath = txtFpath & "\res.bat"

ChDrive "D"
RSP = Shell(Environ$("COMSPEC"), vbNormalFocus)
Application.Wait Now + TimeValue("00:00:03")
SendKeys "CD " & txtFpath & "{ENTER}", True
Application.Wait Now + TimeValue("00:00:03")
SendKeys "start " & FilePath & "{ENTER}", True
Application.Wait Now + TimeValue("00:00:03")
SendKeys "exit " & "{ENTER}", True
Application.Wait Now + TimeValue("00:00:03")
SendKeys "exit " & "{ENTER}", True
Application.Wait Now + TimeValue("00:00:03")
SendKeys "exit " & "{ENTER}", True


> Blockquote

这是我将使用的 res.bat

块引用

@echo off
>summary.txt (
  for %%F in (*chkpackage.log) do findstr /l ###FileSet### "%%F" nul||echo %%F:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A
)

块引用

我的问题是如何将 c9 中的值放入 bat 文件中的 ### Fileset ###

谢谢你的时间和回答

4

1 回答 1

1

您可以使用批处理文件中的参数轻松发送范围“C9”的值。

VBA代码添加参数

SendKeys "start " & FilePath & " " & FileSet & "{ENTER}", True

带参数的批处理

@echo off
>summary.txt (
  for %%F in (*chkpackage.log) do findstr /l %1 "%%F" nul||echo %%F:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A
)

编辑:如果 C9 的值有任何空格,您需要在参数周围添加引号,否则它只会占用第一个单词(但希望有人可以提出更好的方法!)

于 2012-12-06T09:39:18.003 回答