中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 03:54
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于FOR SKIP的用法,请牛人指导 查看 771 回复 4
楼 主 关于FOR SKIP的用法,请牛人指导 发表于 2008-07-19 01:24 ·  中国 浙江 杭州 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
19年会员
UID 85191
性别 男
状态 离线
setlocal enabledelayedexpansion
set b=0
set c=0
set d=0
call :3 0
:3

for /f "skip=%1" %%a in (5.txt) do (
echo %%a>>d:\1\!c!.txt && set /a b=!b!+1
if !b! GTR 10 set /a c=!c!+1 && set /a d=!d!+10 && call :3 !d! ELSE
GOTO :EOF
)

上面的程序不知道哪出了问题,请高人指导。
我的本意是想将5.txt文件,每十行分割为一个新文件,新文件的名称依次为0.txt,1.txt,2.txt等。但一运行程序就提示说:此时不就有”
请高人指导。
2 发表于 2008-07-19 01:41 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
call :3 0
skip不能设置为0吧,你试试。
3 发表于 2008-07-19 19:04 ·  中国 北京 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
19年会员
UID 85191
性别 男
状态 离线
设成1也不行。感谢楼上的,大家继续。
4 发表于 2008-07-19 19:30 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
因为你的代码存在逻辑上的bug
@echo off
setlocal enabledelayedexpansion
set b=0
set c=0
set d=0
set /p fstrow=<a.txt
>>c:\test\!c!.txt echo %fstrow%
set /a b=!b!+1
call :3 1
goto :eof

:3
for /f "skip=%1" %%a in (a.txt) do (
>>c:\test\!c!.txt echo %%a
set /a b=!b!+1
if !b! geq 10 (
set /a c=!c!+1
set /a d=!d!+10
set b=0
call :3 !d!
goto :eof
)
)
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
tongwandou +2 2008-07-20 13:08
wjzhujiang +1 2010-08-24 20:47
5 发表于 2008-07-20 13:07 ·  中国 北京 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
19年会员
UID 85191
性别 男
状态 离线
哈哈,果然高手,感谢了。
论坛跳转: