Php 为什么shell_exec会在我的输出中添加不需要的换行符?

Php 为什么shell_exec会在我的输出中添加不需要的换行符?,php,wmi,Php,Wmi,我试图在php中运行以下代码行 $task_list_raw = shell_exec('PowerShell.exe -Command "Get-WmiObject -Query \'SELECT * FROM Win32_Process\' | Format-List -Property ProcessId, Name, CommandLine"'); 如果我在PowerShell中运行相同的命令而没有ESAAping反斜杠,那么我将在一行中获得以下输出: 命令行:PowerShell.e

我试图在php中运行以下代码行

$task_list_raw = shell_exec('PowerShell.exe -Command "Get-WmiObject -Query \'SELECT * FROM Win32_Process\' | Format-List -Property ProcessId, Name, CommandLine"');
如果我在PowerShell中运行相同的命令而没有ESAAping反斜杠,那么我将在一行中获得以下输出

命令行:PowerShell.exe-命令“获取WmiObject-查询“从Win32_进程选择*”|格式列表-属性进程ID、名称、命令行”

同时,我的$task_list_raw包含相同的数据,其中包含一些不需要的换行符。在没有转义字符的情况下,它总是在特定字符长度后放一个换行符。有人能解释一下为什么会这样吗


计算机上的php版本非常旧(5.4.24)。这会导致这样的问题吗?或者可能是其他问题吗?

回答了这个问题吗?不是真的,但它给了我一个主意,将我的方法从格式列表更改为格式表,这样我可以在我的表上使用-AutoSize,因此,所有内容都处于正确的位置,但这会使按列拆分变得更加困难。请使用
Select Object
而不是任何
Format-
cmdlet。