![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 16:48 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于判断文件名的批处理!急!!!在线等!!! |
| 可打印版本 2,205 / 29 |
| 第16楼 crysis | 发表于 2009-04-11 08:46 |
| 初级用户 发帖 20 积分 20 | |
|
非常感谢!
|
|
| 第17楼 freeants001 | 发表于 2009-04-11 12:14 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
受15楼启发,把代码精简了下
![]() @echo off set 123=%systemroot% for /f "delims=" %%a in (b.txt) do set/p a=%%a<nul|more |
|
| 第18楼 netbenton | 发表于 2009-04-11 13:15 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
原来还可以这样用 换一种方法也可以。
可是不明白是什么意思 [ Last edited by netbenton on 2009-4-11 at 11:23 ] |
|
| 第19楼 freeants001 | 发表于 2009-04-11 20:39 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
这样试试看
|
|
| 第20楼 freeants001 | 发表于 2009-04-11 20:43 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
还有
|
|
| 第21楼 netbenton | 发表于 2009-04-11 20:56 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
测试了一下,17楼以后的方法虽然代码精简了,可是太耗时了,用时27到60毫秒,
而15楼的用时才1毫秒 |
|
| 第22楼 freeants001 | 发表于 2009-04-11 21:28 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
最快的还是兄的18楼的第一段代码^-^
|
|
| 第23楼 freeants001 | 发表于 2009-04-11 21:37 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
不明白
|
|
| 第24楼 freeants001 | 发表于 2009-04-11 21:47 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
pause>nul|echo 为什么会显示出来>con|echo 这里也显示出来>con|echo 这里是三行
还有上面的代码在命令行窗口重复运行,显示结果不一样 这是怎么回事 ![]() |
|
| 第25楼 freeants001 | 发表于 2009-04-11 21:48 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
还有上面的代码在命令行窗口重复运行,显示结果不一样 这是怎么回事 |
|
| 第26楼 freeants001 | 发表于 2009-04-11 21:50 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
===================
为什么会显示出来 这里也显示出来 这里是三行 ================== 为什么会显示出来 这里是三行 这里也显示出来 ================= 出现上面两种显示结果 ![]() |
|
| 第27楼 freeants001 | 发表于 2009-04-11 21:54 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
经多示试验还有显示
======================== 这里也显示出来 这里是三行 为什么会显示出来 ===================== 汗,会不会出现6种结果~~~~ |
|
| 第28楼 netbenton | 发表于 2009-04-12 00:39 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
经试验,最快的是15楼的代码1毫秒,然后是17楼27毫秒,最后是18楼40~50毫秒
不明白的是:为什么用内部命令时反而比more外部命令慢? 我的猜想: 为什么17楼后的代码会起到变量延迟的作用? 是因为在进行管道操作时,已“跑”出批处理程序的外面,也就是把控制权交给了其它外部程序。 而使用外部命令more时,直接交给了more.exe,但是使用内部命令时,应该是交给了另外一个命令解释器,也就是另外调用一次cmd.exe, 然后执行它的一个内部命令。 因为运行一次cmd.exe的速度比运行一次more.exe的速度要慢,所以用more时的速度更快一点。 上面只是我的一个猜想。 |
|
| 第29楼 freeants001 | 发表于 2009-04-12 01:23 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
应该是管道命令的作用,管道命令后的more换成能接受流的findstr也可以
|
|
| 第30楼 freeants001 | 发表于 2009-04-12 01:24 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
上面的setlocal enabledelayedexpansion 可以去掉
|
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |