Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中同时执行两个CMD查询_Php_Exec - Fatal编程技术网

如何在PHP中同时执行两个CMD查询

如何在PHP中同时执行两个CMD查询,php,exec,Php,Exec,如果命令1(cmd查询)成功执行,我希望接下来执行命令2(它还包含一些cmd查询)。在上面的脚本中,仅执行命令1。它不会显示命令2的任何结果 我在这上面浪费了两天时间,没有找到任何解决方案。您可以使用shell\u exec()PHP函数直接在脚本中运行shell命令 语法:字符串shell\u exec(字符串$cmd) 示例: $command1 = "interfacename -S ipaddress -N nms -P company "; $command2 = "list sear

如果命令1(cmd查询)成功执行,我希望接下来执行命令2(它还包含一些cmd查询)。在上面的脚本中,仅执行命令1。它不会显示命令2的任何结果


我在这上面浪费了两天时间,没有找到任何解决方案。

您可以使用
shell\u exec()
PHP函数直接在脚本中运行
shell命令

语法:字符串shell\u exec(字符串$cmd)

示例:

$command1 = "interfacename -S ipaddress -N nms -P company ";
$command2 = "list search clientclass hardwareaddress Mac address ";
if ( exec( $command1 . "&&" . $command2 ) ) {
    echo "successfuly executed";
} else {
    echo "Not successfuly executed";
}
$output = shell_exec('ls -lart');
var_dump($output);  #Showing the outputs
可以在单个命令行中使用多个条件

示例:

$command1 = "interfacename -S ipaddress -N nms -P company ";
$command2 = "list search clientclass hardwareaddress Mac address ";
if ( exec( $command1 . "&&" . $command2 ) ) {
    echo "successfuly executed";
} else {
    echo "Not successfuly executed";
}
$output = shell_exec('ls -lart');
var_dump($output);  #Showing the outputs
在上面的示例中,
“Deleted”
成功删除文件后,字符串将分配给
$output
。否则,
错误/警告/空
字符串将分配给
$output
变量。您应该使用
$output
字符串创建条件

这是你的文件


注意:函数
shell_exec()
输出将有一个
新行
字符。

您可以使用
shell_exec()
PHP函数直接在脚本中运行
shell命令

语法:字符串shell\u exec(字符串$cmd)

示例:

$command1 = "interfacename -S ipaddress -N nms -P company ";
$command2 = "list search clientclass hardwareaddress Mac address ";
if ( exec( $command1 . "&&" . $command2 ) ) {
    echo "successfuly executed";
} else {
    echo "Not successfuly executed";
}
$output = shell_exec('ls -lart');
var_dump($output);  #Showing the outputs
可以在单个命令行中使用多个条件

示例:

$command1 = "interfacename -S ipaddress -N nms -P company ";
$command2 = "list search clientclass hardwareaddress Mac address ";
if ( exec( $command1 . "&&" . $command2 ) ) {
    echo "successfuly executed";
} else {
    echo "Not successfuly executed";
}
$output = shell_exec('ls -lart');
var_dump($output);  #Showing the outputs
在上面的示例中,
“Deleted”
成功删除文件后,字符串将分配给
$output
。否则,
错误/警告/空
字符串将分配给
$output
变量。您应该使用
$output
字符串创建条件

这是你的文件


注意:函数
shell_exec()
输出将有一个
新行
字符。

您可以使用
或a
&&
来分隔命令。
无条件运行这两个命令。如果第一个失败,第二个仍然运行。使用
&&
使第二个命令依赖于第一个命令。如果第一个命令失败,第二个命令将不会运行

您可以使用
或a
&&
来分隔命令。
无条件运行这两个命令。如果第一个失败,第二个仍然运行。使用
&&
使第二个命令依赖于第一个命令。如果第一个命令失败,第二个命令将不会运行

如果我正确理解您的问题,您希望执行
$command1
,然后仅在
$command1
成功时执行
$command2

您尝试的方法是,将命令与
&&
连接在一起,这是shell脚本中的正确方法(它甚至可以与PHP函数一起工作)。但是,因为您的脚本是用PHP编写的,所以让我们用PHP的方式来完成它(事实上,这是相同的方式,但我们让PHP执行逻辑
操作)

使用PHP函数运行每个命令并向其传递三个参数。第二个参数(
$output
,通过引用传递)是一个数组变量
exec()
附加命令的输出。第三个参数(
$return\u var
,也通过引用传递)是由
exec()
使用已执行命令的退出代码设置的变量

Linux/Unix程序的惯例是返回
0
退出代码表示成功,返回(一字节)正值(
1
255
)表示错误。另外,Linux shell上的
&
操作符知道
0
表示成功,非零值表示错误

现在,PHP代码:

$data   = "rm a.txt && echo \"Deleted\"";
$output = exec($data);
var_dump($output);

if($output=="Deleted"){
   #Successful
}
代码结束后,
$code1
$code2
包含两个命令的退出代码;如果
$code1
不为零,则第一个命令失败,
$code2
为零,但第二个命令未执行


$out1
$out2
是包含两个命令输出的数组,按行拆分。

如果我正确理解您的问题,您希望执行
$command1
,然后仅在
$command1
成功时才执行
$command2

您尝试的方法是,将命令与
&&
连接在一起,这是shell脚本中的正确方法(它甚至可以与PHP函数一起工作)。但是,因为您的脚本是用PHP编写的,所以让我们用PHP的方式来完成它(事实上,这是相同的方式,但我们让PHP执行逻辑
操作)

使用PHP函数运行每个命令并向其传递三个参数。第二个参数(
$output
,通过引用传递)是一个数组变量
exec()
附加命令的输出。第三个参数(
$return\u var
,也通过引用传递)是由
exec()
使用已执行命令的退出代码设置的变量

Linux/Unix程序的惯例是返回
0
退出代码表示成功,返回(一字节)正值(
1
255
)表示错误。另外,Linux shell上的
&
操作符知道
0
表示成功,非零值表示错误

现在,PHP代码:

$data   = "rm a.txt && echo \"Deleted\"";
$output = exec($data);
var_dump($output);

if($output=="Deleted"){
   #Successful
}
代码结束后,
$code1
$code2
包含两个命令的退出代码;如果
$code1
不为零,则第一个命令失败,
$code2
为零,但第二个命令未执行


$out1
$out2
是包含两个命令输出的数组,行拆分。

这不能解决我的问题。这不能解决我的问题。如何使用shell\u exec执行同步条件cmd查询?我正在等待您的答案@Sumon sarker如何使用shell\u exec执行同步条件cmd查询?我正在等待您的答案@Sumon sarker我使用了&&运算符,但是的