什么是在bash上打勾的cmd / powershell等效物?

重定向命令输出:

例如:

echo "Foo `./print_5_As.rb`"

会回应“Foo AAAAA”


PowerShell语法基于POSIX ksh语法(有趣的是,不在Microsoft的任何语言,如CMD.EXE,VBScript或Visual Basic for Applications中),所以很多东西的工作方式与Bash几乎相同。 在你的情况下,命令替换完成

echo "Foo $(./print_5_As.rb)"

在PowerShell和Bash中。

Bash仍然支持古代的方式(反引号),但PowerShell清理了语法并删除了冗余结构,例如两种不同的命令替换语法。 这为PowerShell中的另一个用法释放了反引号:在POSIX ksh中,反斜线用作转义字符,但在PowerShell中这将非常痛苦,因为反斜线是Windows中的传统路径组件分隔符。 所以,PowerShell使用(现在未使用的)反引号来转义。


在CMD.EXE中没有直接的等价物。 但是你可以使用FOR命令来实现你想要的。

做如下的事情:

FOR /F "usebackq" %x IN (`./print_5_As.rb`) DO @echo Foo %x

要么

FOR /F %x IN ('"./print_5_As.rb"') DO @echo Foo %x

您可能需要将分隔符设置为默认值以外的值,具体取决于输出的外观以及使用方式。 有关详细信息,请参阅https://technet.microsoft.com/en-us/library/bb490909.aspx上的FOR文档


在Powershell中,您使用$()来评估子表达式...

例如:

PS C:> "Foo $(./print_5_As.rb)"
Foo AAAAA
链接地址: http://www.djcxy.com/p/19689.html

上一篇: What's the cmd/powershell equivalent of back tick on bash?

下一篇: insensitive git pickaxe search