【发布时间】:2011-03-25 10:17:27
【问题描述】:
linux & unix shell 可以处理这样的子命令。
$> command `subcommand`
windows cmd shell 有类似的功能吗?
【问题讨论】:
标签: windows shell command-line cmd
linux & unix shell 可以处理这样的子命令。
$> command `subcommand`
windows cmd shell 有类似的功能吗?
【问题讨论】:
标签: windows shell command-line cmd
您可以使用for 命令的变体获得类似的结果:
FOR /F "usebackq tokens=*" %%a IN (`subcommand`) DO @command %%a
一个很大的区别(除了不直观和丑陋之外)是它会为subcommand产生的每一行执行一次command
请注意,在脚本文件中,百分号必须加倍(如果您出于某种原因想要在命令行中这样做,请使用非加倍的百分号)。
【讨论】:
for /f "tokens=*" %f in ('subcommand') do @(command "%f")(我喜欢在 'batch' 中使用带条件语句的括号,这样您就可以轻松地将多个语句添加到“身体”)
总的来说,没有。 Windows 命令提示符实际上并不是一个 shell,因为它不提供很多自己的功能,独立于您可以运行的命令。例如,在大多数 Un*x shell 中,文件通配(将foo.* 与文件列表匹配)由 shell 本身处理。在 Windows 中,每个应用程序都可以从命令行看到foo.*,并且必须自己实现文件通配。
如果您正在尝试自动化 Windows,或者想要一个功能更全面的 shell,您应该考虑使用 PowerShell,它可以让您执行子命令:
命令(子命令)
【讨论】: