
【已解決】批處理命令for嵌套中怎樣使用變量嵌套最后由 ge_xin_yu 于 -3-4 20:53
文件sample.xml:- <gfx-1 id=page group-id=1 />
nclick="copycode($('code0'));">復制代碼
現在想將sample.xml中的字符“page”替換為隨機數,輸出2次,代碼如下:
- @echo off & SETLOCAL EnableDelayedExpansion
- for /l %%i in (1,1,2) do (
- set r=!random!
- for /f delims= %%j in (sample.xml) do (
- set a=%%j
- set var=!a:page=%r%!
- echo替換后的值: !var!
- )
- )
- pause
nclick="copycode($('code1'));">復制代碼
運行,輸出如下:
- <gfx-1 id= group-id=1 />
- <gfx-1 id= group-id=1 />
nclick="copycode($('code2'));">復制代碼
沒有效果,“page”替換為空,測試發現如果去掉外層的for語句,替換正常。估計和變量延遲有關,于是將set var=!a:page=%r%!改為set var=!a:page=!r!!,運行,卻得到了另外的結果,后面多了個“r”,如下:
- <gfx-1 id= group-id=1 />r
- <gfx-1 id= group-id=1 />r
nclick="copycode($('code3'));">復制代碼
也是失敗,對這個變量延遲仍然比較糊涂,變量中不允許兩組感嘆號存在嗎?如果在復合語句嵌套中需要嵌套變量,該怎么辦呢?另外第二次替換后為何多個“r”呢?請教大家,深致謝意!!