2012-12-06 22 views
0

假設,如果我在單元格C9值的Sheet1 這兒是VBA得到VBA的Excel中輸入批處理腳本

> 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 

的.bat腳本,我使用的運行代碼,這是資源.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文件

感謝您的時間和回答

回答

1

你可以在批處理文件中使用parameter以輕鬆發送範圍「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的值有你需要添加任何空格引用周圍的參數或它只會採取第一個字(希望有人可以建議一個更好的方式,但!)

+0

你能解釋一點點我想知道「%1」它代表什麼 (我是編碼抱歉的新手) – eathapeking

+0

「%1」是第一個命令行參數'sent'to批處理文件。在這裏閱讀更多關於批處理文件參數:http://www.robvanderwoude.com/parameters.php –