楼 主
tokens=后可以是变量吗??
发表于 2007-04-03 05:00 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928 发帖 931 注册 2007-01-06 11:46 19年会员 UID 75624 性别 男
状态 离线
如题如下:
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 ]
第 2 楼
发表于 2007-04-03 05:06 · 中国 广西 梧州 电信
初级用户
★
积分 29 发帖 12 注册 2007-03-16 04:29 19年会员 UID 81902 性别 男
状态 离线
第 3 楼
发表于 2007-04-03 05:17 · 中国 湖北 武汉 电信
中级用户
★★
scriptlover
积分 328 发帖 131 注册 2007-03-25 22:17 19年会员 UID 82910 性别 男
状态 离线
第 4 楼
发表于 2007-04-03 05:21 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928 发帖 931 注册 2007-01-06 11:46 19年会员 UID 75624 性别 男
状态 离线
偶是菜鸟。即使可以。偶也试不出来的。o(∩_∩)o...哈哈。
第 5 楼
发表于 2007-04-03 05:27 · 中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181 发帖 533 注册 2006-08-14 12:54 19年会员 UID 60484
状态 离线
我以前试过,没成功,也许我方法不对。
但至少你可以 CALL 另一段,用 %1 这类参数传进去
第 6 楼
发表于 2007-04-03 05:29 · 中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185 发帖 438 注册 2006-08-28 12:00 19年会员 UID 61449 来自 北京
状态 离线
答案是可以的,测试文件如下,测试环境XP SP2
@echo off&setlocal
set tk=2
for /f "tokens=%tk% delims=:" %%a in ("hello:world:good") do @echo %%a
我今后在论坛的目标就是做个超级坏人!!!
第 7 楼
发表于 2007-04-03 05:40 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928 发帖 931 注册 2007-01-06 11:46 19年会员 UID 75624 性别 男
状态 离线
如楼上是可以实现的。
问题就在这,此时tk=2的。
但要求tk是会变化的。如set /a tk=!tk!+1
似乎就无法实现了。
第 8 楼
发表于 2007-04-03 05:48 · 中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181 发帖 533 注册 2006-08-14 12:54 19年会员 UID 60484
状态 离线
@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
我记得我以前写的是类似这样的
第 9 楼
发表于 2007-04-03 05:52 · 中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185 发帖 438 注册 2006-08-28 12:00 19年会员 UID 61449 来自 北京
状态 离线
可以告诉你没有似乎,只是灵活应用的问题,看下面实例:
@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
我今后在论坛的目标就是做个超级坏人!!!
第 10 楼
发表于 2007-04-03 05:53 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928 发帖 931 注册 2007-01-06 11:46 19年会员 UID 75624 性别 男
状态 离线
第 11 楼
发表于 2007-04-03 05:58 · 中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181 发帖 533 注册 2006-08-14 12:54 19年会员 UID 60484
状态 离线
第 12 楼
发表于 2007-04-03 06:08 · 中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185 发帖 438 注册 2006-08-28 12:00 19年会员 UID 61449 来自 北京
状态 离线
其实我也晕菜啦,用不着SETLOCAL 和 ENDLOCAL效果应该也是一样的,刚才看了一下他的set /a tk=!tk!+1,我想楼主一定没有试验就做出了这样的判断,其实是可以的
只不过set /a tk=!tk!+1这句一定要加上参数/a ,这个参数可起到决定性的作用了
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
komafd2
+1
2008-02-22 16:35
我今后在论坛的目标就是做个超级坏人!!!
第 13 楼
发表于 2008-01-11 20:47 · 中国 福建 泉州 电信
新手上路
★
积分 12 发帖 6 注册 2008-01-11 19:20 18年会员 UID 108333 性别 男
状态 离线
第 14 楼
发表于 2008-01-24 15:40 · 中国 广西 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335 发帖 574 注册 2007-11-27 12:50 18年会员 UID 103929 性别 男 来自 广西
状态 离线
第 15 楼
发表于 2008-01-24 18:16 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
"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-03-04 03:26
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正