|
zhaxi
初级用户
 
积分 112
发帖 40
注册 2006-6-23
状态 离线
|
『楼 主』:
[请教]变量延迟的应用为什么失败
使用 LLM 解释/回答一下
@echo off
echo.
echo.
echo 192.168.10.16上有以下最新的服务端供下载:
dir \\192.168.1.1\rel_inc(增量发布流)\svr /ON /A-D /B /-D /P >%zhx%\Temp\earlist.txt
setlocal ENABLEDELAYEDEXPANSION
set /a num=1
for /f "tokens=1 delims= " %%i in (%zhx%\Temp\earlist.txt) do (set file=%%i
set /a num+=1
echo ◇%num% %%i )
endlocal
echo.
pause
------------------------------------------------------------------
我想通过上述语句实现这样的显示结果:
◇1 a.txt
◇2 b.txt
◇3 c.txt
◇4 d.txt
但我实际执行结果却是:
◇1 a.txt
◇1 b.txt
◇1 c.txt
◇1 d.txt
也就是说明变量num没有延迟扩展,而是for语句预读时就赋予了1。
请高手帮忙改正。谢谢。
Last edited by zhaxi on 2006-6-27 at 22:41 ]
|
|
2006-6-27 22:38 |
|
|
zhaxi
初级用户
 
积分 112
发帖 40
注册 2006-6-23
状态 离线
|
|
2006-6-27 22:58 |
|
|
bagpipe
银牌会员
     DOS联盟捡破烂的
积分 1144
发帖 425
注册 2005-10-20 来自 北京
状态 离线
|
『第 3 楼』:
使用 LLM 解释/回答一下
@echo off
setlocal
for /f "delims=" %%a in (1.txt) do (
set /a aa+=1
call :hi %%a
)
endlocal
goto :eof
:hi
echo %aa% %*
goto :eof
有的时候也可以不用延迟环境变量来实现的..........
Last edited by bagpipe on 2006-6-28 at 11:17 ]
|
|
2006-6-28 08:54 |
|
|
zhaxi
初级用户
 
积分 112
发帖 40
注册 2006-6-23
状态 离线
|
|
2006-6-28 12:51 |
|
|
ruisoft
初级用户
 
积分 93
发帖 57
注册 2007-3-12
状态 离线
|
|
2007-6-11 15:09 |
|
|
stornager
中级用户
   scriptlover
积分 328
发帖 131
注册 2007-3-25
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
看3楼的代码,call本来就在for内。
|

scriptlover
Be with script forever!! |
|
2007-6-11 15:45 |
|
|
ieutk
初级用户
 
积分 107
发帖 48
注册 2006-11-30
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
Originally posted by ruisoft at 2007-6-11 03:09 PM:
通过一个call跳到for外面后如何跳回for???
goto :eof
|

她希望我把粪土变黄金,我希望她视黄金如粪土! |
|
2007-6-11 23:45 |
|
|
wufengseu
新手上路

积分 10
发帖 4
注册 2008-1-8
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
this can be done as follows:
@echo off
echo.
echo.
echo.
setlocal ENABLEDELAYEDEXPANSION
set /a num=0
for /f "tokens=1 delims= " %%i in (1.txt) do (set file=%%i
set /a num= num-1
echo ◇!num! %%i.txt )
endlocal
echo.
pause
Last edited by wufengseu on 2008-1-8 at 10:02 PM ]
|
|
2008-1-8 22:01 |
|