• shadowyue

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

    主楼
  • tomyark123

    加 skills 没有改善吗

    #1
  • ruanimal

    脑瘫的 "\" 路径符号,导致模型的 shell 命令很容易出问题,比如遇到转义。。

    #2
  • NewYear

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

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

    这导致了什么问题吗 0 0 、

    #11
  • yafoo

    每次执行命令都是错几次才成功

    #3
  • shadowyue

    我已经绷不住装了 wsl

    #4
  • Duolingo-v2ex

    在本站别人那抄来的适用于 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。

    #5
  • timnotom

    pi agent 默认用的是 git bash ,感觉问题不大? 体验就还行

    #6
  • lisxour

    @shadowyue 你装了 wsl 之后,命令调用可能宿主 wsl 两个环境混着调用,包括前端一些库是需要编译成本地代码的,很容易命令报错,你楼下的可以用,写了提示词好很多了

    #7
  • zxjxzj9

    @timnotom 想要个补全卡的要死. 和 zsh 相比各种功能少的可怜,最后还是装了 wsl...

    #8
  • mmdsun

    codex 会这样吧 Claude Code 除非你设置了 CLAUDE_CODE_USE_POWERSHELL_TOOL 才会用系统原生命令。

    #9
  • zed1018

    其实我发现不光是 pwsh ,zsh 也经常肘击,时不时就出现转义导致的拼接出现问题。

    #10
  • yippees

    被 ai psw cmd 转义折腾得,,现在直接让它写个 py / js 运行了.

    #12
  • yiyiwa

    windows 下,还有比 pwsh 更加好的吗?这个才是原生啊。

    #13
  • tianhehechu

    因为早年互联网的教程、github 的 README ,都有一种奇怪的习惯:

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

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

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

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

    Mac 搭了 Linux 的便车。

    #14
  • netlous

    @tianhehechu 好几个倒反天罡的点,都不知道该如何评论了

    #15
  • CuteGirl

    各种反人类设计 都不想吐槽

    #16
  • cellsyx

    用的人少,训练数据少,AI 容易出错
    恶性循环了

    #17
  • crocoii

    不如当初继续发展 dos ,现在的 powershell 命令简直没法看。

    #18
  • ashuai

    @tianhehechu 有没有一种可能,win 用户 99.9999%不用 cli

    #19
  • coolcoffee

    @tianhehechu 大家都偏向用 Linux 作为生产环境,自然是以对齐生产环境的语法为准。

    Windows server 和 SQL server 的授权费用现在仍然不是小公司能玩得起的,

    #20
  • liudon

    前段时间折腾了一个 windows 应用,实在是太难了。。。

    #21
  • qiubo

    因为这个原因换了 mac

    #22
  • Retas

    是的,WSL 才是归宿

    #23
  • CatCode

    作为一个 Win/Linux 双修用户,我的猪脑子都能兼容 Windows Powershell/Powershell 7/Bash ,不知道为啥 AI 还玩不转

    #24
  • lujiaosama

    凑活用吧。安装 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 表示没有匹配结果,不视为执行错误。
    #25

发表回复

登录后回复