iT邦幫忙

0

DOS 指令 變機請教

wnchn 5 年前10088 瀏覽

版上前輩好
我想設定一個批次檔
可以使用For迴圈去執行指定的程式
我設定了以下10多個變數
Set n1="test1.exe"
Set n2="tes1.exe"
~
Set n11="tet1.exe"
然而在For迴圈裡
我要怎帶入n1~n11的值呢?
我要怎做才能讓n1可以在進入下一個迴圈時自動加1呢?
還請有經驗的前輩能指導一下

小成 iT邦高手 10 級 ‧ 5 年前 檢舉
FOR /L %variable IN (start,step,end) DO command [command-parameters]

set 是從開頭到結尾一次跳一步的連續數字。所以
(1,1,5) 會產生連續值 (1 2 3 4 5) 而 (5,-1,1)
會產生連續值 (5 4 3 2 1)
liurambo0911 iT邦高手 1 級 ‧ 5 年前 檢舉
我是比較傾向不用找出絕對完美、精簡的答案
只是個BAT 不用考慮到什麼效率
只要變動性不大
複製個10行 改個虛擬主機檔名 應該也不是什麼問題吧
wnchn iT邦新手 5 級 ‧ 5 年前 檢舉
謝謝回應^^,這真是個不錯的辦法。
只是最近在研究指令的寫法,突發奇想討論一下。
學習一下不同的寫法。

2 個回答

12
wiseguy
iT邦超人 1 級 ‧ 5 年前
最佳解答

你可以這樣寫
for /L %i in (1,1,11) do echo n%i
也可以這樣寫
for %i in (1 2 3 4 5 6 7 8 9 10 11) do echo n%i

wnchn iT邦新手 5 級 ‧ 5 年前 檢舉

我的系統是Win7 32Bit
批次檔內容如下
set n1="123"
set n2="456"
set n3="789"

for /L %i in (1,1,11) do echo n%i
我一執行就出現
這個時候不應有 i。
不知道是那邊設定有誤呢?還請指導一下謝謝

小成 iT邦高手 10 級 ‧ 5 年前 檢舉

批次檔內
%i要改成%%i

4
slime
iT邦大師 1 級 ‧ 5 年前

這些程式會異動嗎? 如果程式有異動的可能而且沒有順序性, 也可以考慮:

  1. 把這些程式都放在 d:\system\startup\ (舉例)
<pre class="c" name="code">for %f in (d:\system\startup\*.exe) do %f
wnchn iT邦新手 5 級 ‧ 5 年前 檢舉

謝謝您的回覆,我想使用批次檔來啟動好幾個虛擬機器。
我試著依以下的寫法,但似乎是不行,還請前輩指導一下。
set n1="E:\VPC\XP\XP1.vmx"
set n2="E:\VPC\XP\XP2.vmx"
set n3="E:\VPC\XP\XP3.vmx"
for %i in (1,1,3) do (
"C:\Program Files\VMware\VMware Workstation\vmrun.exe" start %n%i%
)

我要發表回答

立即登入回答