You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows Terminal通过CLI新建标签页并在Fish Shell中执行命令报错求助

Windows Terminal通过CLI新建标签页并在Fish Shell中执行命令报错求助

嘿,这个问题我之前踩过坑!核心原因是Fish Shell和Bash/Zsh这类shell的命令执行参数规则不一样——你用了大写的-C,但Fish只认小写的-c来执行一次性命令,再加上Windows Terminal传递参数的格式需要调整,才会出现这个“找不到文件”的错误(0x80070002就是系统提示文件不存在的错误码)。

你可以把命令改成这样试试:

wt.exe --window 0 new-tab -p Ubuntu /usr/bin/fish -c "cd /; echo '测试命令执行成功'"

我给你拆解下原因和改动点:

  • Fish Shell用-c参数来接收要执行的命令字符串,这和Bash常用的-C完全不同,用错参数自然会报错
  • 如果要执行多个连续命令,直接用Fish支持的分号;分隔就行,和你在Fish里手动输入的写法一致
  • 必须用引号把整个命令字符串包起来,确保Windows Terminal能把完整的命令传递给Fish,不会被拆分成零散的参数

要是你的实际命令里有特殊字符或者双引号,可以换单引号来包裹命令内容(PowerShell环境下这个写法更稳妥):

wt.exe --window 0 new-tab -p Ubuntu /usr/bin/fish -c 'cd /; echo "当前工作目录: $PWD"'

再补个小提醒:你之前的写法里,Fish会把-C当成一个未知参数,还会把"cd /"当成要启动的程序,系统找不到这个“程序文件”,所以才弹出那个错误。换成Fish原生支持的-c参数就解决问题啦。

备注:内容来源于stack exchange,提问作者user3690467

火山引擎 最新活动