Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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
Powershell的PHP输出中79个字符后出现空格_Php_Powershell_Echo - Fatal编程技术网

Powershell的PHP输出中79个字符后出现空格

Powershell的PHP输出中79个字符后出现空格,php,powershell,echo,Php,Powershell,Echo,这里有个不寻常的问题!我正在PHP中执行Powershell。下面是一个示例,我们将Powershell命令的输出捕获到$query中: $query = shell_exec("powershell -command $psScriptPath -logFile'$logFile' -param1 '$blah'< NUL"); 查看生成的源代码显示: L:\transcripts\activedirectory\change-display-name\2012-03-03-23520

这里有个不寻常的问题!我正在PHP中执行Powershell。下面是一个示例,我们将Powershell命令的输出捕获到$query中:

$query = shell_exec("powershell -command $psScriptPath -logFile'$logFile' -param1 '$blah'< NUL");
查看生成的源代码显示:

L:\transcripts\activedirectory\change-display-name\2012-03-03-235201-itwrm-admi
n.txt<br />
L:\transcripts\activedirectory\change display name\2012-03-03-235201-itwrm-admi
n、 txt
另一个例子是在Powershell中:

Write-Output "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ<br />"
写入输出“abcdefghijklmnopqlstuvxyzabcdefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz
给出:

ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA
BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyza
bcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvxyz
这就好像PHP以某种方式包装了文本?或者,Write-output的输出在将其发送回PHP(到$query中)之前将其包装

如果我在PHP中回显“abcdefghijklmnopqrstuvwxyzabefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyzabefghijklmnopqrstuvxyz”并查看源代码,它将显示在一行中,不带上述中断符

我遇到了wordwrap函数,但看不出这有什么帮助。不太清楚现在发生了什么

编辑:这可能与Powershell控制台的默认缓冲区大小为80个字符宽有关吗


谢谢你的帮助

您已经有了答案,但当我遇到同样的问题时,我会在脚本中添加一段代码(如果内存可用,我会在StackOverflow上找到这段代码):


我打赌Powershell控制台会对其输出进行文字包装。cmd.exe的默认窗口大小为80个字符。是的,就是这样。把所有的问题都打出来让我意识到。我设法通过增加Powershell脚本顶部窗口的缓冲区宽度来解决这个问题。我现在没有足够的代表,所以无法发布代码。你也尝试过PHP吗?@AndyArismendi有趣。直到现在我才意识到两者之间的区别。虽然我有一个解决方案,但值得知道!是的,这正是我发现的(来自Heyscript Guy):)
L:\transcripts\activedirectory\change-display-name\2012-03-03-235201-itwrm-admi
n.txt<br />
Write-Output "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ<br />"
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA
BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
if ($Host -and $Host.UI -and $Host.UI.RawUI) 
{
    $rawUI = $Host.UI.RawUI
    $oldSize = $rawUI.BufferSize
    $typeName = $oldSize.GetType().FullName
    $newSize = New-Object $typeName (500, $oldSize.Height)
    $rawUI.BufferSize = $newSize
}