如何给路径包裹双引号,将处理后的git路径通过管道传给explorer打开
解决方案
核心原理
管道的作用是将前一个命令的标准输出转为后一个命令的标准输入,但
explorer本身不支持从标准输入读取路径参数,它仅接受启动时传入的命令行位置参数,因此无法直接通过管道传递路径,需要先捕获前序命令的输出,再作为参数传给explorer。
不同环境的实现方式
Cmd 环境
使用for /f命令捕获前序命令的输出:
注意:命令内部的管道符需要用for /f "delims=" %p in ('git --exec-path ^| sed "s#/#\\#g"') do explorer "%p"^转义,sed中的反斜杠需要额外转义。PowerShell 环境
直接用括号包裹命令获取输出作为参数即可:
也可以用管道配合explorer (git --exec-path | sed 's#/#\#g')ForEach-Object实现:git --exec-path | sed 's#/#\#g' | ForEach-Object { explorer $_ }WSL/Bash 环境
用$()做命令替换捕获输出传入参数位:explorer "$(git --exec-path | sed 's#/#\#g')"
内容的提问来源于stack exchange,提问作者Wenfang Du
相关产品推荐
相关产品推荐

