2010-06-02 262 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