|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『楼 主』:
tokens=后可以是变量吗??
使用 LLM 解释/回答一下
如题如下:
set tk=2
for /f "tokens=%tk%" in (...) do (......& set /a tk=!tk!+1)
这样可以吗??
Last edited by wudixin96 on 2007-4-3 at 05:01 AM ]
|
|
2007-4-3 05:00 |
|
|
pestally
初级用户
 
积分 29
发帖 12
注册 2007-3-16
状态 离线
|
|
2007-4-3 05:06 |
|
|
stornager
中级用户
   scriptlover
积分 328
发帖 131
注册 2007-3-25
状态 离线
|
|
2007-4-3 05:17 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
|
2007-4-3 05:21 |
|
|
NaturalJ0
银牌会员
    
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
我以前试过,没成功,也许我方法不对。
但至少你可以 CALL 另一段,用 %1 这类参数传进去
|
|
2007-4-3 05:27 |
|
|
9527
银牌会员
     努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
答案是可以的,测试文件如下,测试环境XP SP2
@echo off&setlocal
set tk=2
for /f "tokens=%tk% delims=:" %%a in ("hello:world:good") do @echo %%a
|

我今后在论坛的目标就是做个超级坏人!!! |
|
2007-4-3 05:29 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
如楼上是可以实现的。
问题就在这,此时tk=2的。
但要求tk是会变化的。如set /a tk=!tk!+1
似乎就无法实现了。
|
|
2007-4-3 05:40 |
|
|
NaturalJ0
银牌会员
    
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
@echo off&setlocal enabledelayedexpansion
for /l %%i in (1,1,3) do (
set tk=%%i
echo !tk!
for /f "tokens=!tk! delims=:" %%a in ("hello:world:good") do @echo %%a
call :callfor !tk!
)
pause
:callfor
for /f "tokens=%1 delims=:" %%a in ("hello:world:good") do @echo %%a
我记得我以前写的是类似这样的
|
|
2007-4-3 05:48 |
|
|
9527
银牌会员
     努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
可以告诉你没有似乎,只是灵活应用的问题,看下面实例:
@echo off&setlocal
:loop
set /a tk+=1
if %tk% equ 10 goto:eof
setlocal
echo %tk%
for /f "tokens=%tk% delims=:" %%a in ("hello:world:good:thank:very:feel:9527:bagpipe:lxmxn") do @echo %%a
endlocal
goto loop
|

我今后在论坛的目标就是做个超级坏人!!! |
|
2007-4-3 05:52 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
|
2007-4-3 05:53 |
|
|
NaturalJ0
银牌会员
    
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
|
2007-4-3 05:58 |
|
|
9527
银牌会员
     努力做坏人
积分 1185
发帖 438
注册 2006-8-28 来自 北京
状态 离线
|
『第 12 楼』:
使用 LLM 解释/回答一下
其实我也晕菜啦,用不着SETLOCAL 和 ENDLOCAL效果应该也是一样的,刚才看了一下他的set /a tk=!tk!+1,我想楼主一定没有试验就做出了这样的判断,其实是可以的
只不过set /a tk=!tk!+1这句一定要加上参数/a ,这个参数可起到决定性的作用了
|

我今后在论坛的目标就是做个超级坏人!!! |
|
2007-4-3 06:08 |
|
|
gugewang
新手上路

积分 12
发帖 6
注册 2008-1-11
状态 离线
|
|
2008-1-11 20:47 |
|
|
moniuming
银牌会员
     永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
|
2008-1-24 15:40 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第 15 楼』:
使用 LLM 解释/回答一下
"tokens=*"是什么意思,具体是什么功能`
能给我解释一下么`麻烦你了`
for /?自己看
@echo off
echo ab cd ef gh ij kl>1.txt
for /f "tokens=*" %%i in (1.txt) do echo 文本全部字符集%%i
for /f "tokens=1" %%i in (1.txt) do echo 文本第1个字符集%%i
for /f "tokens=3" %%i in (1.txt) do echo 文本第3个字符集%%i
for /f "tokens=6" %%i in (1.txt) do echo 文本第6个字符集%%i
echo 其实这是简化的写法,因为for /f 默认空格为分隔见下标准写法
for /f "tokens=1 delims= " %%i in (1.txt) do echo 文本第1个字符集%%i
for /f "tokens=3 delims= " %%i in (1.txt) do echo 文本第3个字符集%%i
for /f "tokens=6 delims= " %%i in (1.txt) do echo 文本第6个字符集%%i
echo "tokens=6 delims= " 取以空格为分隔的第6个字符集
echo "tokens=6 delims=," 取以逗号为分隔的第6个字符集
pause
我回会员的一段消息,既然写了就贴这里了,已经全中文了看不懂不要再问了
此帖被 +1 点积分 点击查看详情 评分人:【 dosz 】 | 分数: +1 | 时间:2009-3-4 03:26 |
|
|

第一高手 第二高手
我的小站
 |
|
2008-1-24 18:16 |
|