在Windows中的linux shell中与`...`类似的功能

时间:2015-04-09 13:20:59

标签: windows powershell

在Linux / Unix shell中有一种语法可以执行命令,在这个命令中是先执行的其他命令,然后替换为这样的命令:

gcc main.c `pkg-config --cflags --libs gtk+-3.0`

这里首先执行pkg-.....然后用其输出替换,然后执行整个命令

Windows PowerShell中是否有一些类似的功能(如果可能的话,我也会使用cmd)

我所知道的是,在PowerShell中你可以这样写:

gcc main.c (pkg-config --cflags --libs gtk+-3.0)

但问题是,辅助命令的输出像一个连续的字符串一样传递,所以像这样" -mms-bitfields ....."并且gcc不会将其识别为单独的命令。

1 个答案:

答案 0 :(得分:3)

您可以使用-split operator

gcc main.c ((pkg-config --cflags --libs gtk+-3.0) -split " ")

或者可能

gcc main.c ((pkg-config --cflags --libs gtk+-3.0) -split " +")

以避免在输出中的参数之间存在多个空格的情况下使用空参数(尽管我不认为pkg-config会这样做)。

-split运算符完全按照它在锡上所说的那样:它在给定模式出现时分割它给出的内容。也就是说,

PS C:\> "foo bar baz" -split " "
foo
bar
baz