私はPowerShellスクリプトをいじっていますが、それらは非常にうまく機能しています。ただし、自分で手動で入力した場合と同じように、実行されたすべてのコマンドを表示する方法はあるのでしょうか。これは、バッチファイルの「エコーオン」に似ています。 PowerShellコマンドライン引数、コマンドレットを確認しましたが、明確なものは見つかりませんでした。ありがとう!
次のコマンドは、スクリプトの各行をWrite-Debug-に出力します
Set-PSDebug -Trace 1
man Set-PSDebug
Traceパラメータが1に設定されている場合、スクリプトの各行は実行時にトレースされます。パラメーターが2に設定されている場合、変数の割り当て、関数呼び出し、およびスクリプト呼び出しもトレースされます。 Stepパラメータを指定すると、スクリプトの各行が実行される前にプロンプトが表示されます。
使用した場所echo on
CMDでは、Write-Verbose
およびSet-PSDebug -Step
代わりに。それらは同じではありませんが、巧みに使うとより強力になります。
醜い:
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に配置されている場合です...
help about_History
すべてのコマンドについて教えてくれます
Get-History [options]
完全なリストを返して、操作/表示などを行うことができます。