2014-02-11 2 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'is не распознается как внутренняя или внешняя команда, оперативная программа или командный файл." ошибка.

ответ

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 может быть любое слово, которое просто завершает синтаксис для части партии. Вы должны также включить команду goto :EOF перед секцией JScript, иначе она будет выполнена как пакетный код.

Смежные вопросы