[請問] 請問延遲代換能解這個嗎?

看板EZsoft作者 (吹笛牧童)時間12年前 (2011/12/02 12:06), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/1
test.bat for /l %%a in (1,1,3) do ( echo %1 shift ) 執行: test a b c 上面程式很簡單,只是想依序 echo 出 a,b,c 三個參數 shift 指令可以造成參數移位 但是 %1 被提早代換掉了 經查延遲代換 setlocal ENABLEDELAYEDEXPANSION 指令可以解一些在 for loop 內的代換問題 但經實驗,它對 %1 參數仍是不可延後的 所以此題無解嗎? 謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.197.63

12/02 13:32, , 1F
請問你在哪一版?!
12/02 13:32, 1F

12/02 13:53, , 2F
有差?在 win7,但要寫給同事用,怕同事不同版
12/02 13:53, 2F

12/02 13:53, , 3F
如果有副作用,也許稍提醒一下,限制 win7 使用
12/02 13:53, 3F
我繞一圈解掉了 XD for %%a in (%1 %2 %3 %4 %5) do echo %%a 這樣也可以 XD 為什麼寫這種東西呢? 因為我很羨慕一種程式風格 command [notag] [simulate] [2] [3] [sku1.txt] 像這樣,中括號代表可以加參數,有五種參數,可加可不加,順序可對調 為了在批次檔中寫好,於是我用 %1 去檢查 user 下了什麼參數 再搭配 for, shift, 讓所有參數都變成 %1 被檢查一遍 因此現在新解法也能解決問題就是了 缺點是我只辨認九個參數,因為最後我沒用 shift 而 for 裏只能擺到 %9 ※ 編輯: HuangJC 來自: 60.251.197.63 (12/02 13:57)

12/02 14:29, , 4F
這裡不是程式版,程式有版
12/02 14:29, 4F

12/02 14:43, , 5F
XD 你很明顯誤會1F的意思了
12/02 14:43, 5F
文章代碼(AID): #1Es4wkM6 (EZsoft)