You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中对应bash里set -x的命令是什么?

PowerShell 中类似 bash set -x 的命令追踪功能

在 PowerShell 里,有几种方法可以实现类似 bash set -x 的命令执行追踪效果,下面是最常用的几种方案:

1. 使用 Set-PSDebug -Trace 1

这是最贴近 bash set -x 的原生功能,启用后会自动打印每个执行的命令行(包括变量展开后的最终内容)。

示例脚本:

Set-PSDebug -Trace 1

$myVar = "C:\"
ls $myVar

输出效果:

DEBUG:    1+ Set-PSDebug -Trace 1
DEBUG:    3+ $myVar = "C:\"
DEBUG:    4+ ls $myVar
    目录: C:\

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023/02/14     21:19                Windows
-a----        2023/01/01     00:00           681 example.txt
               1 个文件          681 字节
              18 个目录 514,576,928,768 字节可用

关闭追踪只需执行 Set-PSDebug -Trace 0。

2. 自定义 + 前缀格式(贴近 bash 输出风格)

如果想要完全模拟 bash 里的 + 前缀标识,可以通过简单的自定义函数实现:

$DebugPreference = 'Continue'
function Invoke-Traced {
    param([ScriptBlock]$Cmd)
    Write-Debug "+ $($Cmd.ToString().Trim())"
    & $Cmd
}

# 使用示例
$myVar = "C:\"
Invoke-Traced { ls $myVar }

输出效果:

DEBUG: + ls $myVar
    目录: C:\

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023/02/14     21:19                Windows
-a----        2023/01/01     00:00           681 example.txt
               1 个文件          681 字节
              18 个目录 514,576,928,768 字节可用

3. 使用 Trace-Command(深度调试)

如果需要查看命令执行的内部细节(比如参数绑定、命令发现流程),可以用 Trace-Command,它会输出更详尽的调试信息:

Trace-Command -Name CommandDiscovery,ParameterBinding -Expression { ls "C:\" } -PSHost

这个命令适合复杂场景下的底层流程排查。

内容的提问来源于stack exchange,提问作者tftd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:53:17