DOS/for中循环变量向其他变量赋值失败,何故?
答案:2 悬赏:40 手机版
解决时间 2021-03-27 04:36
- 提问者网友:轻浮
- 2021-03-26 08:32
DOS/for中循环变量向其他变量赋值失败,何故?
最佳答案
- 五星知识达人网友:忘川信使
- 2021-03-26 10:07
变量没有定义,如下才是正确的。
set /a x=1
set /a y=0;
:loop
set /a y=%x%+%y%
echo %y%
set /a x=%x%+1
if %x% lss 10 goto loop
pause
set /a x=1
set /a y=0;
:loop
set /a y=%x%+%y%
echo %y%
set /a x=%x%+1
if %x% lss 10 goto loop
pause
全部回答
- 1楼网友:鱼忧
- 2021-03-26 11:39
..........
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-4* delims=," %%i in (my.txt) do (
set fullsvrname=%%j%%k
set tmp_i=%%i
set tmp_j=%%j
echo !fullsvrname!===!tmp_i!===!tmp_j!
pause>nul
)
pause
..........
开启延迟变量就行了,开启延迟变量后%%用!!来表示.
在for命令以内设定的变量,如果又要用在for命令中,它不会识别,属于延迟变量.
如果不开启延迟变量,这么表示也行:
call echo tmp_i=%%tmp_i%%, tmp_j=%%tmp_j%%
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-4* delims=," %%i in (my.txt) do (
set fullsvrname=%%j%%k
set tmp_i=%%i
set tmp_j=%%j
echo !fullsvrname!===!tmp_i!===!tmp_j!
pause>nul
)
pause
..........
开启延迟变量就行了,开启延迟变量后%%用!!来表示.
在for命令以内设定的变量,如果又要用在for命令中,它不会识别,属于延迟变量.
如果不开启延迟变量,这么表示也行:
call echo tmp_i=%%tmp_i%%, tmp_j=%%tmp_j%%
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯