我正在玩PowerShell脚本,他们工作得很好。 但是,我想知道是否还有任何方法可以显示所有运行的命令,就像你自己手动input命令一样。 这与batch file中的“echo on”类似。 我查看了PowerShell命令行参数,cmdlet,但没有发现任何明显的东西。 谢谢!
以下命令会将每行脚本输出到Write-Debug-
Set-PSDebug -Trace 1
从man Set-PSDebug
当Trace参数设置为1时,脚本的每一行都会在执行时跟踪。 当参数设置为2时,还会跟踪variables赋值,函数调用和脚本调用。 如果指定了步骤参数,则在执行脚本的每一行之前提示您。
在CMD中使用echo on ,我现在使用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]
将返回完整列表供您操作\ display等