我正在尝试使用 PowerShell 脚本,它们运行良好。但是,我想知道是否有任何方法可以显示所有运行的命令,就像您自己手动输入它们一样。这类似于批处理文件中的“echo on”。我查看了 PowerShell 命令行参数、cmdlet,但没有发现任何明显的效果。谢谢!
答案1
以下命令将输出每行脚本到 Write-Debug-
Set-PSDebug -Trace 1
从man Set-PSDebug
当 Trace 参数设置为 1 时,脚本的每一行都会在执行时被跟踪。当该参数设置为 2 时,变量赋值、函数调用和脚本调用也会被跟踪。如果指定了 Step 参数,则在执行每一行脚本之前都会提示您。
答案2
我以前在 CMD 中使用过echo on
,现在改用Write-Verbose
和Set-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]
将返回完整列表供您操作\显示等。