中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 01:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:间隔时间启动一批文件夹下的批处理文件 查看 2,087 回复 10
楼 主 求助:间隔时间启动一批文件夹下的批处理文件 发表于 2006-09-20 10:49 ·  中国 上海 浦东新区 电信
高级用户
★★
积分 599
发帖 148
注册 2003-10-30 00:00
22年会员
UID 12192
性别 男
状态 离线
我需要启动大约100个文件夹下的批处理程序,文件夹的名字不同,批处理的文件名相同,大约每间隔4,5秒钟就启动一个批处理,文件夹的名字类似以下规则:abc1,abc2,abc3......请各位大虾指点一下怎么写批处理程序。多谢了!
2 发表于 2006-09-20 11:03 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
不知是否符合楼主的要求.
@echo off
for /l %%i in (1,1,100) do (
if exist ".\abc%%i\name.bat" (
ping 127.1 -n 5 >nul 2>nul
call ".\abc%%i\name.bat"
)
)

[ Last edited by pengfei on 2006-9-20 at 11:06 ]
业精于勤而荒于嬉,形成于思而毁于随。
3 发表于 2006-09-20 11:13 ·  中国 上海 浦东新区 电信
高级用户
★★
积分 599
发帖 148
注册 2003-10-30 00:00
22年会员
UID 12192
性别 男
状态 离线
如果文件夹改为abc01,abc02,abc03......abc10,abc11,abc12..........呢?
4 发表于 2006-09-20 11:17 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
Originally posted by qinqong at 2006-9-20 11:13:
如果文件夹改为abc01,abc02,abc03......abc10,abc11,abc12..........呢?


可以, 但比较麻烦.
业精于勤而荒于嬉,形成于思而毁于随。
5 发表于 2006-09-20 11:23 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  在『第 2 楼』pengfei 代码的基础上稍加修改,得到如下代码,可以试一下,如果还要启动abc100文件夹下的批处理,请自行修改代码:

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,99) do (
set num=0%%i
set num=!num:~-2!
if exist ".\abc!num!\name.bat" (
ping 127.1 -n 5 >nul 2>nul
call ".\abc!num!\name.bat"
)
)


[ Last edited by namejm on 2006-9-20 at 11:25 ]
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
6 发表于 2006-09-20 11:25 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
呵呵~ namejm兄已经改好了!

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,108) do (
set files=%%i
if %%i LSS 10 set files=0%%i
if exist ".\abc!files!\name.bat" (
ping 127.1 -n 5 >nul 2>nul
call ".\abc!files!\name.bat"
)
)

[ Last edited by pengfei on 2006-9-21 at 02:31 ]
业精于勤而荒于嬉,形成于思而毁于随。
7 发表于 2006-09-20 11:29 ·  中国 上海 浦东新区 电信
高级用户
★★
积分 599
发帖 148
注册 2003-10-30 00:00
22年会员
UID 12192
性别 男
状态 离线
多谢,批处理好长时间没用,很多东西都忘了,看来还是要经常来这里充充电。
请问setlocal enabledelayedexpansion是什么意思?

[ Last edited by qinqong on 2006-9-20 at 11:33 ]
8 发表于 2006-09-20 11:35 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
setlocal enabledelayedexpansion是启用延迟的环境变量 ~

[ Last edited by pengfei on 2006-9-20 at 11:38 ]
业精于勤而荒于嬉,形成于思而毁于随。
9 发表于 2006-09-22 01:10 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
@echo off
for /f "delims=" %%i in ('dir /s /a /b your.bat') do call "%%i" & ping 4 -w 4000 -n 1 2>nul 1>nul

执行时间可以更改-w后面的参数,4000表示4秒
10 发表于 2006-09-22 07:41 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
3742668斑竹 用 your.bat 不怎么好吧!
11 发表于 2006-09-22 08:27 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
『第 10 楼』:

3742668斑竹 用 your.bat 不怎么好吧!

请详述。
论坛跳转: