2015-09-27 5 views
-2

Я пытаюсь создать html-страницу для клиента, с которой он сможет запустить или остановить конкретную услугу окна на любом удаленном рабочем столе. Всего нет. услуг в области составляет около 20. Вместо того, чтобы создавать 20 (начальный) + 20 (стоп) + 20 (перезапуск) пакетный файл, я хочу иметь 1 пакетный файл с условием else, я мог бы передавать параметр в javascript-функции. Код для HTML страницы ниже:Передача параметров из функции javascript в пакетный файл

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
MyObject = new ActiveXObject("WScript.Shell") 
function start() 
{ 
MyObject.Run("\"E:\\start.bat\""); 
} 
function stop() 
{ 
MyObject.Run("\"E:\\stop.bat\""); 
} 
function restart() 
{ 
MyObject.Run("\"E:\\restart.bat\""); 
} 
</script> 
<title>Our Company</title> 
</head> 
<body> 
<table background-color:#f1f1c1; border="1" style="width:50%" align="center"> 
<tr> 
<th style="text-align:center">Instance Name</th> 
<th style="text-align:center">Accessible URL</th> 
<th style="text-align:center">Status</th> 
<th style="text-align:center">Start</th> 
<th style="text-align:center">Stop</th> 
<th style="text-align:center">Restart</th> 
</tr> 
<tr height="70%"> 
<td style="text-align:center">netadds</td> 
<td style="text-align:center"> 
<a href="http://localhost/">localhost:netadds</a></td> 
<td style="text-align:center">Running</td> 
<td style="text-align:center"><button onclick="start()">Start</button></td> 
<td style="text-align:center"><button onclick="stop()">Stop</button></td> 
<td style="text-align:center"><button onclick="restart()">Restart</button>   </td> 
    </tr> 
</table> 
</body> 
</html> 

и код в start.bat является:

@echo off 
net start AMAPTestJetty8i0T1 
if ERRORLEVEL 1 goto error 
exit 
:error 
echo Could not start service 
pause 

Пожалуйста, подсказывают, как можно применить, если другое заявление в пакетном режиме и передать параметр в функции запуска.

ответ

0

Чтобы передать параметры в файл BAT:

MyObject.Run("E:\start.bat The_parameter1 The_parameter2"); 

Чтобы получить параметры в вашем BAT Файл:

echo parameter 1 = %1 
echo parameter 2 = %2 

Чтобы сделать тест IF ELSE в BAT

net start AMAPTestJetty8i0T1 
if %ERRORLEVEL%==1 (goto error 
    ) else (
goto NoError) 

Или с использованием перенаправления:

net start AMAPTestJetty8i0T1 && goto NoError || goto Error 
+1

«перенаправление» может быть запутанным термином, поскольку вы его используете; Я бы назвал это «условным разделителем команд» ... – aschipfl

+0

Для чего вы используете «условный разделитель команд»? Чтобы сделать перенаправление ..... – SachaDee

+0

«redirection» - это что-то вроде «echo text> file.log'; '&&' и '||' - это совершенно разные вещи ... – aschipfl