PowerShell 脚本,显示运行的命令

PowerShell 脚本,显示运行的命令

我正在尝试使用 PowerShell 脚本,它们运行良好。但是,我想知道是否有任何方法可以显示所有运行的命令,就像您自己手动输入它们一样。这类似于批处理文件中的“echo on”。我查看了 PowerShell 命令行参数、cmdlet,但没有发现任何明显的效果。谢谢!

答案1

以下命令将输出每行脚本到 Write-Debug-

Set-PSDebug -Trace 1

man Set-PSDebug

当 Trace 参数设置为 1 时,脚本的每一行都会在执行时被跟踪。当该参数设置为 2 时,变量赋值、函数调用和脚本调用也会被跟踪。如果指定了 Step 参数,则在执行每一行脚本之前都会提示您。

答案2

我以前在 CMD 中使用过echo on,现在改用Write-VerboseSet-PSDebug -Step。它们并不相同,但如果使用得当,它们的威力会更大。

答案3

丑陋的:

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 中,则上述示例将会失败......

答案4

help about_History 

将告诉你所有命令和

Get-History [options]  

将返回完整列表供您操作\显示等。

相关内容