我有可以使用 ReadExisting() 获取数据的 Powershell 语法,但问题是......该语法必须在之前强制执行 php 条件(以及页面加载时的一些 shell_exec 语法)
我尝试使用 powershell 获取 COM1 数据,并使用这段代码
在该图像中,第一个 ReadExisting() 无法声明输出,因为 COM1 中的设备未显示新结果,当设备显示结果时,再次尝试 ReadExisting() 并且我得到了我想要的。
所以(我认为)我应该在 PHP 上实现的逻辑是: - 首先执行 $port 和 $port.Open() - 之后执行 ReadExisting()。
我正在尝试像这样制作 php 代码
<?php
$result = shell_exec('powershell $port = New-Object System.IO.Ports.SerialPort COM1,9600,None,8,one ; Get-Variable ; $port.Open(); $port.ReadExisting() ');
echo $result
?>
<form method="post">
<input type="submit" name="test" id="test" value="RUN" /><br/>
</form>
<?php
function testfun()
{
$result2 = shell_exec('powershell $port.ReadExisting()');
echo $result2;
}
if(array_key_exists('test',$_POST)){
testfun();
}
?>
但是按钮没有像在 powershell 中那样显示结果。我能看到什么可能是因为我正在制作两个 shell_exec?是的,$result 正在运行(我已经在测试它并且我可以看到端口连接变量)
是否有可能使 shell 命令与按钮条件保持一致?谢谢你!。
最佳答案
我认为 Powershell
的 session 可以提供帮助。这类问题通常是这样解决的。 session 启动和维护的详细文档可用here
如果使用 session ,命令可以具有连续性。
关于php - 带有 PHP 按钮的两个 Shell_Exec 命令,但仍在一个 powershell 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56032763/