中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 批处理能实现序列数吗? 上一主题 | 下一主题
bush
银牌会员




积分 2165
发帖 730
注册 2004-4-21
状态 离线
『楼 主』:  批处理能实现序列数吗?

比如要产生:1、2、3……999等序列数,咋办?

要求不能使用xp下的命令。

2005-11-22 23:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
220110
荣誉版主




积分 718
发帖 313
注册 2005-9-26
状态 离线
『第 2 楼』:  

"要求不能使用xp下的命令。"  这怎么理解?也就只能用DOS的COMMAND?

如果那样的话,用WAIT 和COUNTER 应该可以实现.思路:参考PLC编程那样用"定时器与计数器接力"来实现长延时方式,定时驱动,计数步进激活.

不过BATCH FILE 可能会有更简单方式.请大家讨论:>

2005-11-23 07:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 3 楼』:  

用第三方工具Strings.com可以做到。



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-11-23 19:42
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 4 楼』:  

Re bush:

      最近似乎有许多需要在 MSDOS/Win9x_COMMAND 下解决的问题,这与我三年前的境遇十分相似,颇有他乡故知之感。

      关于产生序列数,我记得曾在一篇过去的回帖中提及,现在很难找到了;如果有时间,我会将之整理到我 “[分享]批处理编程的异类” 这篇主题中,敬请等待。

      现提供一个比较类似的代码[1],其中使用双重循环嵌套产生和处理了带前缀0和不带前缀0-9和10-99之间的序列数。

[1]将文件名改为001.txt 010.txt...100.txt
http://www.cn-dos.net/forum/viewthread.php?tid=14512

[ Last edited by willsort on 2005-11-25 at 21:54 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-11-25 21:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bush
银牌会员




积分 2165
发帖 730
注册 2004-4-21
状态 离线
『第 5 楼』:  

谢谢willsort,我的问题已经解决了!

2005-11-26 00:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bush
银牌会员




积分 2165
发帖 730
注册 2004-4-21
状态 离线
『第 6 楼』:  谈谈最近用批处理解决问题一例(序列)——献丑了

起因是这样的,拿到一个网站的下载包,回来一看是残缺不全的。要核对后才知道差哪些文件,苦差事!而这些文件名是由序列数构成的,像这样:www.xxx.com/xxx/file1.html、www.xxx.com/xxx/file2.html……www.xxx.com/xxx/file389.html
鼓捣半天,弄了些批处理解决,思路是先生成序列数,再用exist判断。

开始之前为稳妥起见,把.html改为了.htm
a.bat
b 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
;实际上第一个批处理文件也是用批处理生成的。
b.bat
@echo off
for %%a in (1,2,3,4,5,6,7,8,9) do call c node%%a.htm
:redo
if "%1" == "" goto end
for %%a in (0,1,2,3,4,5,6,7,8,9) do call c node%1%%a.htm
if errorlevel 2 goto end
shift
goto redo
:end
c.bat
@echo off
if not exist %1 echo %1 >> urls.lst
echo on
最后得到的urls.lst就是需要的文件。嗬嗬,再批处理下载去~

[ Last edited by bush on 2005-11-26 at 00:13 ]

2005-11-26 00:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 7 楼』:  

要是在 CMD 下简单了,一条语句就能办到。
for /l %i in (1,1,389) do @if not exist file%i.html echo.file%i.html>>urls.lst
这样下载的事我一般用 curl 或 wget 来干,然后再批量整理,很省事。

2005-11-26 11:42
查看资料  发送邮件  发短消息 网志  OICQ (105400208)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 8 楼』:  


——————————————  willsort 版务记录  ——————————————
合并主题:{17950}谈谈最近用批处理解决问题一例(序列)——献丑了
合并理由:二主题存在上下文的直接联系
——————————————  willsort 版务记录  ——————————————

:: Count.bat - Generate a serial of numbers
:: Will Sort - 2005-11-26 - WinXP_CMD/MSDOS7.10/MSDOS6.22
:: 说明:一个可独立运行的示例程序,产生 1~123 之间的序列数输出到文件中
::       可以将它简单地修改,以产生任意位数、任意区间、任意格式的的序列数
::       甚至小数也是有可能的产生的。
:: 链接:http://www.cn-dos.net/forum/viewthread.php?tid=17883
@echo off
if "%1"==":" goto %2
set _prog=%0
call %_prog% : loop1 0 1 2 3 4 5 6 7 8 9
set _prog=
set _start=
set _break=
goto end

:loop1
if "%3"=="" goto end
if "%3"=="0" call %_prog% : loop2 0 1 2 3 4 5 6 7 8 9
:: 如果产生的序列数需要前缀0,则省略上一行,下一行的 if not "%3"=="0" 也须删去
if not "%3"=="0" call %_prog% : loop2 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39
if "%_break%"=="true" goto end
shift
goto loop1

:loop2
if "%3"=="" goto end
if "%3"=="0" call %_prog% : loop3 0 1 2 3 4 5 6 7 8 9
:: 如果产生的序列数需要前缀0,则省略上一行,下一行的 if not "%3"=="0" 也须删去
if not "%3"=="0" call %_prog% : loop3 %30 %31 %32 %33 %34 %35 %36 %37 %38 %39
if "%_break%"=="true" goto end
shift
goto loop2

:loop3
if "%3"=="" goto end
if "%3"=="1" set _start=true
if "%_start%"=="true" echo.%3>>sn.txt
:: 上一行是计数的功能代码,示例仅将数字输出到文件中
if "%3"=="123" set _break=true
if "%3"=="123" goto end
:: _start 是开始计数的标记,1   是开始计数的边界
:: _break 是中断计数的标记,123 是中断计数的边界
shift
goto loop3

:end
[ Last edited by willsort on 2005-11-26 at 18:16 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-11-26 17:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: