2014-02-11 84 views
2

所以,我很新這裏,但是繼承人這個問題,我似乎無法過去。 批量編寫一段代碼以啓動程序,並模擬單個按鍵。這是有問題的代碼塊有條件編譯關閉

@echo off 

set SendKeys=CScript //nologo //E:JScript "%~F0" 
ping -n 5 -w 1 127.0.0.1 
start .\cc6.exe 
%SendKeys% "{ENTER}" 

// JScript section 

var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.SendKeys(WScript.Arguments(0)); 

代碼返回「條件編譯關閉」錯誤。 尋找解決的辦法告訴我,加入

/*@cc_on @*/ 

的代碼應該可以解決sitation並打開條件編譯。 但是,在「/ * @ cc_on」結果中添加該段不會被識別爲內部或外部命令,可操作程序或批處理文件。「錯誤。

回答

0

我相信/ * @ cc_on @ * /需要插入到jscript腳本文件中,而不是在您發佈的批處理文件中。

3

你需要通過@if命令來使用條件編譯這樣:

@if (@CodeSection == @Batch) @then 

@echo off 

set SendKeys=CScript //nologo //E:JScript "%~F0" 
ping -n 5 -w 1 127.0.0.1 
start .\cc6.exe 
%SendKeys% "{ENTER}" 

goto :EOF 

@end 

// JScript section 

var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.SendKeys(WScript.Arguments(0)); 

@if命令忽略下面的代碼,直到下一個@end; (@CodeSection == @Batch)部分只是一個表達式,它在JScript中具有錯誤的值,但在批處理中有效,並且@then部分可能是任何只是完成批處理部分語法的單詞。您還必須在JScript部分之前包含goto :EOF命令,否則它將作爲批處理代碼執行。