ここに異常な問題があります!私はPHP内からPowerShellを実行しています。ここでは、$クエリにPowerShellコマンドの出力をキャプチャする例です。PowershellのPHP出力にスペースが79文字で表示されます
$query = shell_exec("powershell -command $psScriptPath -logFile'$logFile' -param1 '$blah'< NUL");
さて、これはほとんどの部分に適しています。 Powershellスクリプトはその中身を行い、Write-Outputを使用してHTMLのように一部のデータをスクリーン/ユーザーに返す。例:
Write-Output "$logFile<br /><br />"
Write-Output "Blah blah some information<br />"
PHPエコー$クエリが問題になります。すべてのWrite-Output "行"で、PHPは空白または79番目の文字(または空白)の後に何らかの改行を挿入するようです。時には、これはスペースと一致しているので、目立ってはいませんが、それは言葉の真中にあることもあります。たとえば、$ LOGFILEの値があるとき:それは実際に画面上でこのように見える終わる
L:\transcripts\activedirectory\change-display-name\2012-03-03-235201-abcde-admin.txt<br />
(末尾のスペースに注意してください):
L:\transcripts\activedirectory\change-display-name\2012-03-03-235201-abcde-admi n.txt
生成されたソースコードを見るには示しています
L:\transcripts\activedirectory\change-display-name\2012-03-03-235201-itwrm-admi
n.txt<br />
別の例は、PowerShellで次のようになります。
Write-Output "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ<br />"
は与える:
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA
BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ<br />
PHPは何とかテキストをラップしているかのようですか?または、Write-Outputの出力が "前"に折り返されてPHPに送り返されます($ queryへ)。
私はPHPで「ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZを」エコーとソースコードを表示した場合、それは上記の休憩なしで1つの行に表示されます。
私はwordwrap関数を見つけましたが、これがどのように役立つか分かりませんでした。現時点で何が起こっているのかは分かりません...
EDIT:これは、Powershellコンソールのデフォルトのbuffersizeを80文字幅にすることと関係がありますか?
ありがとうございました! (メモリが私を提供する場合、私はStackOverflowの上で見つかったものを)
コンソール出力のワードラッピング。 – Furgas
cmd.exeのデフォルトのウィンドウサイズは80文字です。 –
はい、それでした。すべての質問を入力すると、わかりました。 PowerShellスクリプトの先頭にあるWindowのバッファ幅を増やして解決しました。私は現時点で自己に十分な担当者がいないので、コードを投稿することはできません。 – Robin