如何控制评估订单?

时间:2012-05-28 20:42:19

标签: batch-file

例如,cd (echo ..)在powershell中工作,但是如何让它在批处理中工作(它首先评估回声,因此该命令实际上是cd ..)? mycommand.exe (ls -fi *.hs -exclude \"#*\" -name -r)是我实际尝试转换的内容(它将已完成的已过滤文件列表发送到mycommand)。

2 个答案:

答案 0 :(得分:1)

setlocal enabledelayedexpansion
set LIST=
for /r %%F in (*.hs) do (
   set "FN=%%F"
   if not "!FN:~0,1!"=="#" set LIST=!LIST! "%%F"
)
mycommand.exe !LIST!

将是一个粗略的翻译。

答案 1 :(得分:0)

首先添加$符号来评估parens中的命令:

mycommand.exe $(ls -fi *.hs -exclude \"#*\" -name -r)

ls -fi *.hs -exclude \"#*\" -name -r | mycommand.exe

如果要对从ls返回的每个项目执行命令,您可以:

ls -fi *.hs -exclude \"#*\" -name -r | %{mycommand.exe $_ }