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