• 请不要在回答技术问题时复制粘贴 AI 生成的内容
shadowyue
0.36D
V2EX  ›  程序员

为什么 AI 在 win 平台天天都在肘击 powershell?🫪

  •  
  •   shadowyue · 5h 51m ago · 2004 views

    powershell 如此难用吗,大模型都绷不住🫪

    27 replies    2026-09-01 22:48:50 +08:00
    tomyark123
        1
    tomyark123  
       5h 51m ago   ❤️ 1
    加 skills 没有改善吗
    ruanimal
        2
    ruanimal  
       5h 49m ago   ❤️ 1
    脑瘫的 "\" 路径符号,导致模型的 shell 命令很容易出问题,比如遇到转义。。
    yafoo
        3
    yafoo  
       5h 20m ago   ❤️ 1
    每次执行命令都是错几次才成功
    shadowyue
        4
    shadowyue  
    OP
       5h 17m ago
    我已经绷不住装了 wsl
    Duolingo
        5
    Duolingo  
       5h 10m ago   ❤️ 3
    在本站别人那抄来的适用于 codex 的 AGENTS.md ,自己略微改了一下,其它 agent 改改也能用:

    ```
    ## Windows 约束
    **当前环境是 Windows 10 / pwsh7**
    - 默认禁止使用 Bash 语法,除非确定此 shell 处在 Linux 环境
    - 不要使用 Bash 引号/转义习惯,在 PowerShell 命令里,复杂正则优先用单引号包裹。
    - 如果正则本身同时包含单引号和双引号,优先拆成多个简单 rg 命令。
    - 执行多行 Python 禁止使用 Bash heredoc ;改用 PowerShell here-string | python -
    - pwsh 中,语句块表达式(如 `foreach`、`if`)不能直接作为管道输入。 需要先使用 `$()` / `@()` 包裹,或先赋值给变量。 普通命令输出可直接进入管道,无需额外包裹。
    - PowerShell 使用 `rg` 时,通配目录必须先用 `Get-ChildItem -Filter` 展开为真实路径,禁止直接把含 `*` 的搜索路径传给 `rg`。
    ```
    timnotom
        6
    timnotom  
       5h 4m ago   ❤️ 1
    pi agent 默认用的是 git bash ,感觉问题不大? 体验就还行
    lisxour
        7
    lisxour  
       5h 1m ago   ❤️ 1
    @shadowyue 你装了 wsl 之后,命令调用可能宿主 wsl 两个环境混着调用,包括前端一些库是需要编译成本地代码的,很容易命令报错,你楼下的可以用,写了提示词好很多了
    zxjxzj9
        8
    zxjxzj9  
       5h 1m ago   ❤️ 1
    @timnotom 想要个补全卡的要死. 和 zsh 相比各种功能少的可怜,最后还是装了 wsl...
    mmdsun
        9
    mmdsun  
       4h 57m ago via iPhone   ❤️ 1
    codex 会这样吧 Claude Code 除非你设置了 CLAUDE_CODE_USE_POWERSHELL_TOOL 才会用系统原生命令。
    zed1018
        10
    zed1018  
       4h 55m ago   ❤️ 2
    其实我发现不光是 pwsh ,zsh 也经常肘击,时不时就出现转义导致的拼接出现问题。
    NewYear
        11
    NewYear  
       4h 33m ago
    @ruanimal #2

    你说的是路径里的\符号吗?

    事实上从 win95 就完全兼容用/代替\了。

    这导致了什么问题吗 0 0 、
    yippees
        12
    yippees  
       4h 29m ago
    被 ai psw cmd 转义折腾得,,现在直接让它写个 py / js 运行了.
    yiyiwa
        13
    yiyiwa  
       4h 19m ago
    windows 下,还有比 pwsh 更加好的吗?这个才是原生啊。
    tianhehechu
        14
    tianhehechu  
       4h 12m ago
    因为早年互联网的教程、github 的 README ,都有一种奇怪的习惯:

    假装个人用户占比最大的 Windows 从未存在,

    然后在讲解操作命令的时候,只给出 Linux 命令;

    在演示图形操作的时候,录制 Mac 操作操作视频、贴 Mac 操作截图 或者使用 HTML 渲染一个 Mac 窗口作为装饰。

    后来训练 AI ,从网络上爬取教程。AI 自然就更熟悉 Linux / Mac 命令。

    Mac 搭了 Linux 的便车。
    netlous
        15
    netlous  
       4h 7m ago   ❤️ 1
    @tianhehechu 好几个倒反天罡的点,都不知道该如何评论了
    CuteGirl
        16
    CuteGirl  
       3h 52m ago
    各种反人类设计 都不想吐槽
    cellsyx
        17
    cellsyx  
       3h 46m ago
    用的人少,训练数据少,AI 容易出错
    恶性循环了
    crocoii
        18
    crocoii  
       3h 34m ago via Android
    不如当初继续发展 dos ,现在的 powershell 命令简直没法看。
    ashuai
        19
    ashuai  
       3h 27m ago
    @tianhehechu 有没有一种可能,win 用户 99.9999%不用 cli
    coolcoffee
        20
    coolcoffee  
       3h 20m ago via iPhone
    @tianhehechu 大家都偏向用 Linux 作为生产环境,自然是以对齐生产环境的语法为准。

    Windows server 和 SQL server 的授权费用现在仍然不是小公司能玩得起的,
    liudon
        21
    liudon  
       3h 9m ago
    前段时间折腾了一个 windows 应用,实在是太难了。。。
    qiubo
        22
    qiubo  
       1h 51m ago
    因为这个原因换了 mac
    Retas
        23
    Retas  
       1h 37m ago
    是的,WSL 才是归宿
    CatCode
        24
    CatCode  
       50 mins ago
    作为一个 Win/Linux 双修用户,我的猪脑子都能兼容 Windows Powershell/Powershell 7/Bash ,不知道为啥 AI 还玩不转
    lujiaosama
        25
    lujiaosama  
       45 mins ago
    凑活用吧。安装 PowerShell7 和 RG 。 然后全局 AGENTS.MD 里加入以下内容

    ```
    ## Windows 与命令执行

    - Windows 环境使用当前 PowerShell 7 ;不得调用 `powershell.exe`(当前机器会降级到 Windows PowerShell 5.1 )。除非任务明确要求,不嵌套调用 `pwsh.exe`、`cmd.exe`、Git Bash 、WSL 或其他 shell 。
    - 确需启动独立 PowerShell 7 进程时,使用 `pwsh.exe -NoLogo -NoProfile`,避免加载用户 profile 注入额外命令与配置。
    - 直接使用 PowerShell 语法;避免 Unix 命令及 `cat`、`find`、`where` 等含义不明确的别名或同名程序。
    - PowerShell 字符串和正则在无需变量展开时使用单引号;需要展开时使用双引号,相邻字符有歧义时写 `${name}`。双引号字符串内使用反引号而非反斜杠转义。
    - 多行文本使用 PowerShell here-string ,不使用 Bash heredoc (`<<EOF`)。
    - 将 `foreach`、`if` 等语句块的输出接入管道时,使用 `& { ... } | ...` 包裹,不直接在 `}` 后接 `|`。
    - 命令失败时先检查命令、路径、引号及退出码,不随意切换 shell 。

    ## 检索

    - 文本检索优先使用 `rg`,文件枚举优先使用 `rg --files`,按文件名查找使用 `rg --files | rg`。
    - 不把含 `*` 的路径直接作为 `rg` 的 PATH 参数;文件类型筛选使用 `-g`,目录通配先用 `Get-ChildItem -Directory -Path` 展开为 `FullName` 后再传给 `rg`。
    - `rg` 不可用时,使用 PowerShell 的 `Get-ChildItem` 和 `Select-String`;如需安装工具,先征求用户同意。
    - `rg` 退出码 `1` 表示没有匹配结果,不视为执行错误。
    ```
    sanxidiot
        26
    sanxidiot  
       27 mins ago
    因为 windows 之前的理念就是一切 ALL IN GUI ,cli 这种东西在微软的理念里面本来就该被 gui 给替代。但是问题是微软大公司病,内部斗争非常严重,导致 gui 没做起来,cli 还只有基本功能。结果到了 AI 时代,agent 需要 cli 而不是 gui ,这直接暴露了微软最大的弊病。事实上,要不是 powershell 勉强在公司内斗中保留下来,否则现在微软在 AI 时代会更加尴尬。
    PrinceofInj
        27
    PrinceofInj  
       25 mins ago
    @CuteGirl PowerShell 可不反人类,比 bash 那些反人类的命令记忆方便多了。PowerShell 反的是 AI ,AI 看多了 bash 的那些莫名奇妙的缩写后不认识 PowerShell 的人类可读命令了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2907 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 63ms · UTC 15:14 · PVG 23:14 · LAX 08:14 · JFK 11:14
    ♥ Do have faith in what you're doing.