2010-06-02 154 views
0

.BAT我有一个使用1%一个内部文件的build.bat ...所以你可以称之为:读取命令行参数,从文件

建设1.23

我想它阅读从一个单独的文件中的参数,所以我想在version.txt把“1.23”和做:

构建< version.txt

但它不起作用。这不是管道的工作原理吗?是我想要的,如果是的话,怎么样?

+0

你所做的事情就是你将version.txt的内容传递给build命令/可执行文件的标准输入。那是你想要做什么?这与将参数传递给命令不同,因为程序必须以不同的方式处理它。 – 2010-06-02 10:21:36

+0

@ mr.b是的我想将version.txt的内容作为命令行参数传递,所以build不必根本改变。这可能吗? – 2010-06-02 10:27:30

回答

1

在DOS命令FOR具有分析文件,并为其分配发现令牌的形式到变量,然后可以将其用作其他批处理文件的参数。假设version.txt包含单行“1.23”,该批处理文件将打开它,将1.23赋值给该变量,然后调用您的原始批处理文件,并将该变量的值作为命令行参数传递。

@echo off 
for /f %%i in (version.txt) do call build.bat %%i 

如果version.txt包含一个以上的线,build.bat对各行调用一次。在DOS提示符下键入help for,查看可能可以使用的其他功能。

-1

我认为如果处理批处理文件中的文件处理,那么version.txt编辑不正确的可能性会更大。

如果执行.bat文件,你应该修改你的脚本来解析文件以获取版本:

 build FILE version.txt 
+0

我不明白你的答案的后半部分是什么意思 – 2010-06-02 10:34:26

+0

我的意思是只改变处理命令行参数的.bat文件的开始,以解析文件version.txt,如果.bat脚本像那样执行的话。在我看来,这将得到你想要的,同时保持清晰 – 2010-06-02 11:00:14