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




