2009-12-11 234 views
0

下面是我的一段代码,在给出工具名称作为输入并按下提交时,应执行与该工具相对应的批处理文件。使用php运行批处理文件

<html> 
    <head> 
    <title>My Form</title> 
    </head> 
<body> 
<form action="batch.php" method=post> 

Which tool you would like to use: 
<br> <input type="text" name="ToolName"> 
<p> 
<input type="submit" name="submit" value="Please wait!"> 
</form> 
</body> 
</html> 

BATCH.php

<html> 
<head> 
<title>Perv!</title> 
</head> 

<?php 
$ToolName = $_REQUEST['ToolName'] ; 
?> 
<p> 
Hi <?php print $ToolName; 
//exec("cmd/c D:\workspace\execute.bat"); 
exec("C:\\wamp\\www\\test.bat"); 
//system("test.bat"); 
//system("cmd /c D:\\workspace\\execute.bat"); 
?> 
</body> 
</html> 

我使用Apache/Windows的。 请提出任何帮助,将不胜感激。

+2

问题或问题是什么?如果这不符合预期,请告诉我们预期的结果,并粘贴错误日志中的任何相关输出。 – 2009-12-11 11:04:26

+0

该批处理文件实际上是HTM文件,所以这可能会流泪。 由于您正在导入一个简单的文本文件,为什么不使用“include”呢? – Tramov 2009-12-11 11:10:14

+0

批处理文件包含一些未执行的Java命令。 错误 “线程异常”主“#java”未被识别为内部或外部命令, 可操作程序或批处理文件。 '#java'未被识别为内部或外部命令, 可操作程序或批处理文件“。 – ankit 2009-12-11 11:19:02

回答

-2

至于我能理解你的问题,你可以试试这个:

system($ToolName); 

您可能要指定$工具名称变量正确的路径。

1

正如我已经评论过的,你所描述的似乎是你的批处理文件的一个问题。但无论如何,这个文件应该是做什么或输出应该显示的东西吗?

如果后面是这种情况,请注意exec()只返回输出的最后一行。你可以让所有的输出提供另一个变量来获得所有的输出。 exec()函数的官方php documentation告诉你必须这样做。