假设我想跑步
>foo bar
但是bar
的变化取决于我在文件系统中的位置。我想做的就是不必记住bar
的正确值,就是将文件fizz
保留在相应的文件夹中,这样我就可以进行呼叫
>foo fizz
这当然是开箱即用的。
>foo < fizz
因为foo
不希望输入,只是一个参数。我找到了solution for Linux,但对于Windows却找不到。
答案 0 :(得分:1)
假设fizz
包含没有空格的单行,即单行格式
for /F %i in (fizz) do @foo %i
将做您想要的。如果您要放入fizz
的参数可能包含空格,请使用
for /F "delims=" %i in (fizz) do @foo "%i"
一次传递参数。如果将%
字符放入批处理文件,则将其加倍。
答案 1 :(得分:1)
安东(Anton)准确给出了您想要的内容,应标记为正确答案。但是,我可以添加(根据我以前的经验,尤其是在Java版本中),foo
可能具有不同的版本,类似于bar的不同之处,这取决于运行它的文件系统的位置。因此fizz
将同时具有可执行文件和参数。即
路径1中fizz
的内容:
foo bar
路径2中的嘶嘶声内容:
foo1 bar2
然后仅调用文件的内容,而无需指定命令(因为该命令已存在于文件fizz
中)。
for /f "delims=" %i in (fizz) do %i
例如,如果fizz
包含以下内容,则此方法还可以在fizz
中存在的下一行中运行更多命令:
ping localhost
ping 127.0.0.1
nslookup hostname1
每个都将与上面的for循环依次运行。
PS!如果需要从批处理文件运行,请提醒您将%
翻倍到%%
。