3

PowerShell は、コマンドライン バッチ ファイルを呼び出すことができます。PowerShell スクリプトの出力は、「tee」コマンドで記録できます。しかし、tee コマンドは、PowerShell 1 の PowerShell スクリプト内のバッチ ファイルの出力を記録しません。

このカットダウンの例を試してください:

test.batという内容のバッチ ファイルを作成します。

@echo hello from bat

PowerShell から実行します。

PS C:\> .\test.bat | tee out.txt

これは機能します-次を含む出力ファイルが作成されます

hello from bat

次に、バッチ ファイルをラップするtest.ps1というPowerShell スクリプトを作成します。

write-output "hello from PS"
.\test.bat

これをティーで実行します。

 .\test.ps1 | tee pout.txt

これは、バッチ ファイルの出力を記録しません。出力ファイルには、

hello from PS

期待していたのに

hello from PS
hello from bat

ただし、バッチ出力はキャプチャされません。この PowerShell スクリプトと従属バッチ ファイルの出力をキャプチャするにはどうすればよいですか?

4

1 に答える 1

5

編集:

Powershell 2 では動作するようですが、Powershell 1 では動作しません。

ただし、Powershell 1 の回避策を見つけました。test.ps1 をこれに変更してみてください

write-output "hello from PS"
.\test.bat | write-output
于 2009-09-18T15:36:07.443 に答える