2014-02-11 83 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命令,否则它将作为批处理代码执行。