2016-02-05 48 views
1

簡要說明:嘗試使用sendkeys從批處理文件的輸出中鍵入兩個變量/鍵。如何使用sendkeys編寫傳遞變量

我不斷收到語法或出現下標錯誤。

兩個變量從批處理腳本傳遞,通過:

cscript //nologo sendKeys.vbs !config! !arguments! 
rem Yes, both variables are defined, and delayed expansion in enabled. 

我試圖把他們的SendKeys似乎並沒有工作。我不熟悉的VBS ...

的VBScript:

Set WshShell = WScript.CreateObject("WScript.Shell") 

WshShell.Run "notepad.exe", 9    ' Start notepad in order to test my failure. 
WScript.Sleep 500       ' Give notepad time to load 

WshShell.SendKeys & WshShell.Arguments(0) ' write passed !config! variable 
WshShell.SendKeys "{TAB}"     ' tab key 
WshShell.SendKeys & WshShell.Arguments(1) ' write passed !arguments! variable 
WshShell.SendKeys "{ENTER}"    ' enter key 

回答

2

的.Arguments屬於WScript對象,而不是shell。 &是連接運算符,它在方法名稱和第一個/唯一參數之間沒有意義。因此,使用

Set WshShell = WScript.CreateObject("WScript.Shell") 

WshShell.Run "notepad.exe", 9    ' Start notepad in order to test my failure. 
WScript.Sleep 500       ' Give notepad time to load 

WshShell.SendKeys WScript.Arguments(0) ' write passed !config! variable 
WshShell.SendKeys "{TAB}"     ' tab key 
WshShell.SendKeys WScript.Arguments(1) ' write passed !arguments! variable 
WshShell.SendKeys "{ENTER}"    ' enter key 

或者 - 更好 - 想想一種解決方法來解決你的現實世界的問題沒有SendKeys。

+0

垃圾郵件輸入到的應用程序不支持將變量傳遞給它,除了這兩種語言之外的任何東西都會丟失。謝謝你的回答,對不起,這很簡單。 – Bloodied