![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-26 01:26 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 去掉文件名称前的特定字符 |
| 可打印版本 3,615 / 21 |
| 第1楼 9527 | 发表于 2006-12-07 04:12 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
去掉文件名称前的特定字符 这个是我在GOOGLE组上看到的,顺便发到这里供大家学习,虽然局限性很大,不过可以看看。
主要是去掉文件名前的0 处理前: 0000001.txt 00000010.txt 00000011.txt 00000012.txt 00000013.txt 00000014.txt 00000015.txt 00000016.txt 00000017.txt 00000018.txt 00000019.txt 0000002.txt 00000020.txt 0000003.txt 0000004.txt 0000005.txt 0000006.txt 0000007.txt 0000008.txt 0000009.txt 处理后: 1.txt 10.txt 11.txt 12.txt 13.txt 14.txt 15.txt 16.txt 17.txt 18.txt 19.txt 2.txt 20.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt |
|
| 第2楼 ccwan | 发表于 2006-12-07 04:29 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
9527兄涉猎很广啊!学习了。
|
|
| 第3楼 redtek | 发表于 2006-12-07 08:20 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
欣赏~~
|
|
| 第4楼 youxi01 | 发表于 2006-12-07 08:42 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
如果名字纯粹是楼主所示(类型),貌似还可以利用数字的特性来处理开头的"00....."简化代码:
|
|
| 第5楼 redtek | 发表于 2006-12-07 09:10 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
欣赏youxi01兄非常巧妙的方法~:)
太巧合啦,SET /A 居然把这么多的0前缀的 00000020 当成了以0开头的8进制数字了,结果8进制的20正好是10进制的16~:) 意外的是那个 00000020.txt 被 SET /A 由 SET认为的8进制转成了10进制的 16.txt 了~:) 不过这只是意外:) 欣赏youxi01兄好玩的实现方法~:) |
|
| 第6楼 不得不爱 | 发表于 2006-12-07 09:50 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
4楼的如果遇到00000018.txt 00000019.txt就会无法处理了
|
|
| 第7楼 不得不爱 | 发表于 2006-12-07 09:55 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
pause |
|
| 第8楼 namejm | 发表于 2006-12-07 10:26 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
set /a 的方法要么受进制的影响容易出错,要么就是难以得知首位0的个数从而不易通过在首位添1再减的方式来求出结果,还是通过探测首位是否为0来决定是否继续抛弃首位的一个0这种方法比较具备通用性。
|
|
| 第9楼 youxi01 | 发表于 2006-12-07 11:42 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
不好意思,忘记了进制的问题,自己比较粗心(冲动)的性格还是没有改变啊!namejm的说法不错,不过这个问题也不是没有解决的,看看下面的代码还存在什么的问题(解决了进制的问题):
|
|
| 第10楼 3742668 | 发表于 2006-12-07 11:47 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
未测试。 |
|
| 第11楼 pengfei | 发表于 2006-12-07 11:57 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
Originally posted by redtek at 2006-12-7 09:10: 这种取位循环去零法的确很爽, 通用各种情况. 在批处理处理浮点数中也屡试不爽. 关于进制出错的问题, 以前也有过讨论. http://www.cn-dos.net/forum/viewthread.php?tid=22951&fpage=1&highlight= [ Last edited by pengfei on 2006-12-7 at 01:09 PM ] |
|
| 第12楼 youxi01 | 发表于 2006-12-07 12:40 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
第9楼测试结果:
测试前: 测试后: 目前为止,没发现大的问题,成功解决进制的问题。 |
|
| 第13楼 namejm | 发表于 2006-12-07 12:51 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
youxi01 和 3742668 的代码有点出人意料,甚是精彩。
|
|
| 第14楼 pengfei | 发表于 2006-12-07 12:54 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
3742668版主的爽, 直接用0作分隔符. 这种方法应该也可以通用, 妙哉...
|
|
| 第15楼 youxi01 | 发表于 2006-12-07 13:02 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
3742668版主的爽!!!斑竹应该多来逛逛,你的代码总是让人耳目一新啊!羡慕+学习!
[ Last edited by youxi01 on 2006-12-7 at 01:05 PM ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |