加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows cmd将一个命令的输出作为参数传递给另一个命令

发布时间:2020-12-14 01:57:35 所属栏目:Windows 来源:网络整理
导读:在 linux中,有可能这样做: git diff $(git status -s -b | sed -n '2p' | cut -d' ' -f2-) 或者更简单的情况 ls $(pwd) 问题是如何在Windows中实现相同的目标? (不使用批处理文件,在命令提示符中使用单行程序).并非所有命令都支持管道,那么我们如何评估一
在 linux中,有可能这样做:

git diff $(git status -s -b | sed -n '2p' | cut -d' ' -f2-)

或者更简单的情况

ls $(pwd)

问题是如何在Windows中实现相同的目标? (不使用批处理文件,在命令提示符中使用单行程序).并非所有命令都支持管道,那么我们如何评估一个并将结果作为参数传递给另一个?

我已经尝试过管道和<和>但没有工作.

git diff < (git status -s -b | sed -n '2p' | cut -d' ' -f2-)

自己尝试一下它需要一个文件.并且|不起作用,因为git diff不支持它

git status -s -b | sed -n '2p' | cut -d' ' -f2- | git diff // results in illegal seek

解决方法

cmd中没有$运算符.
重定向运算符(<,>,>>)需要文件或流句柄.
管道|将命令的标准输出传递给另一个命令的标准输入.

然而,for /F loop能够捕获命令的输出并将其提供在变量引用中(示例中为%A);请参阅以下代码:

for /F "usebackq delims=" %A in (`git status -s -b ^| sed -n '2p' ^| cut -d' ' -f2-`) do git diff %A

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读