将输出重定向到Windows中另一个命令的命令行参数

在Windows中,我如何使用脚本/命令的输出作为另一个脚本的参数?
(管道在这里不起作用,因为其他脚本不能从标准输入读取)

太澄清了:我有一个需要参数arg的AnotherScript,例如:

AnotherScript 12

现在我希望参数(示例中的12)来自脚本的输出,称之为ScriptB.所以我想要一些类似的东西

AnotherScript (ScriptB)

AnotherScript实际上是一个需要参数的python脚本,而ScriptB是一个产生一些数字的cygwin bash脚本,所以我想使用它的方式如下:

c:\Python26\python.exe AnotherScript (c:\cygwin|bin|bash --login -i ./ScriptB)

谢谢你的回答.但是,考虑到需要费力的“for”构造,我已经重写了AnotherScript以从标准输入中读取.这似乎是一个更好的解决方案.

注意:所有这些都要求命令位于批处理文件中.因此双%符号.

您可以使用for命令捕获命令的输出:

for /f "usebackq delims=" %%x in (`ScriptB`) do set args=%%x

然后你可以在另一个命令中使用该输出:

AnotherScript %args%

但这会导致%args%包含ScriptB输出中的最后一行.如果它只返回一行,您可以将其转换为一行:

for /f "usebackq delims=" %%x in (`ScriptB`) do AnotherScript %%x

在批处理文件外部使用时,必须使用%x而不是%% x.

但是,如果ScriptB返回多行,则会为每条行运行AnotherScript.您可以通过在第一次循环迭代后断开来绕过这个 – 虽然只在批处理文件中:

for /f "usebackq delims=" %%x in (`ScriptB`) do AnotherScript %%x & goto :eof

相关文章

文章浏览阅读2.2k次,点赞6次,收藏20次。在我们平时办公工作...
文章浏览阅读1k次。解决 Windows make command not found 和...
文章浏览阅读3.2k次,点赞2次,收藏6次。2、鼠标依次点击“计...
文章浏览阅读1.3w次。蓝光版属于高清版的一种。BD英文全名是...
文章浏览阅读974次,点赞7次,收藏8次。提供了更强大的功能,...
文章浏览阅读1.4w次,点赞5次,收藏22次。如果使用iterator的...