web-dev-qa-db-ja.com

PowerShellスクリプト、実行されたコマンドを表示

私はPowerShellスクリプトをいじっていますが、それらは非常にうまく機能しています。ただし、自分で手動で入力した場合と同じように、実行されたすべてのコマンドを表示する方法はあるのでしょうか。これは、バッチファイルの「エコーオン」に似ています。 PowerShellコマンドライン引数、コマンドレットを確認しましたが、明確なものは見つかりませんでした。ありがとう!

39

次のコマンドは、スクリプトの各行をWrite-Debug-に出力します

Set-PSDebug -Trace 1

man Set-PSDebug

Traceパラメータが1に設定されている場合、スクリプトの各行は実行時にトレースされます。パラメーターが2に設定されている場合、変数の割り当て、関数呼び出し、およびスクリプト呼び出しもトレースされます。 Stepパラメータを指定すると、スクリプトの各行が実行される前にプロンプ​​トが表示されます。

47
Spongeboy

使用した場所echo on CMDでは、Write-VerboseおよびSet-PSDebug -Step代わりに。それらは同じではありませんが、巧みに使うとより強力になります。

5
Jay Bazuzi

醜い:

PS > get-content foo.ps1|foreach-object{$_;invoke-expression "$_"}
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
powershell
PS > get-content foo.ps1
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
PS >

上記の問題は、次のような複数行のコマンドがある場合です。

foreach($proc in $procs){
  $proc.processname
}

上記の例で失敗するのは、それがその構造でfoo.ps1に配置されている場合です...

2
Marco Shaw
help about_History 

すべてのコマンドについて教えてくれます

Get-History [options]  

完全なリストを返して、操作/表示などを行うことができます。

2
Helvick