中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-07 10:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 帮忙改改重复运行的批处理 查看 1,222 回复 12
楼 主 帮忙改改重复运行的批处理 发表于 2008-07-27 11:54 ·  中国 广东 广州 电信
初级用户
积分 28
发帖 12
注册 2008-07-26 20:22
17年会员
UID 122162
性别 男
来自 广州
状态 离线
我是新手.我想运行不知盘符分区中的一个程序.如abc.exe,批处理如下:
D:
abc.exe
e:
abc.exe
f:
abc.exe
g:
abc.exe
h:
abc.exe
i:
abc.exe
……
n:
abc.exe
exit
假设abc.exe在F盘,批处理到F盘就运行了.但是到G盘行命令找不到abc.exe,又重头找,
再次运行F盘的abc.exe,有N行命令就重复运行N次.
请高手帮忙改一改.程序是在最后一个盘的,就是不知盘符.我初学,可能这样写批处理不行,帮我重写也行.总之能运行最后一个盘的程序就成.谢谢.
2 发表于 2008-07-27 12:30 ·  中国 江苏 无锡 电信
初级用户
积分 38
发帖 15
注册 2008-07-23 22:20
17年会员
UID 121971
性别 男
状态 离线
@ECHO OFF

d:
if not exist abc.exe goto nextE
abc.exe
goto Q

:nexeE
E:
if not exist abc.exe goto nextF
abc.exe
goto Q

:nexeF
F:
if not exist abc.exe goto nextG
abc.exe
goto Q


........

:Q
exit
3 谢谢 发表于 2008-07-27 15:04 ·  中国 广东 广州 电信
初级用户
积分 28
发帖 12
注册 2008-07-26 20:22
17年会员
UID 122162
性别 男
来自 广州
状态 离线
谢谢2楼,还有个问题,如果逐行运行命令,自然可以.
但是,一起运行,到指定的运行的程序,还来不及运行,就跳到下一行命令了,结果还是不能运行指定的运行的程序,能否在每段命令中,暂停30秒,让指定的程序运行呢?

[ Last edited by 25167241 on 2008-7-27 at 05:33 PM ]
4 发表于 2008-07-28 12:41 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
运行环境?
纯DOS?
CMD?
第一高手 第二高手

5 发表于 2008-07-28 20:55 ·  中国 上海 杨浦区 电信
中级用户
★★
积分 248
发帖 126
注册 2008-05-30 17:18
18年会员
UID 120118
性别 男
状态 离线
是呀,楼主到底是在什么环境下运行该程序,请说明一下,别人才好帮你!!
6 发表于 2008-07-28 22:50 ·  中国 广东 肇庆 电信
初级用户
积分 112
发帖 49
注册 2006-10-19 11:04
19年会员
UID 66890
状态 离线
先将 abc.exe 放入虚拟内存盘就可以了
7 发表于 2008-07-29 08:22 ·  中国 广东 茂名 化州市 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%i:\nul set driver=%%i
)
start %driver%:\abc.exe
8 请再改一下 发表于 2008-08-01 17:24 ·  中国 广东 广州 电信
初级用户
积分 28
发帖 12
注册 2008-07-26 20:22
17年会员
UID 122162
性别 男
来自 广州
状态 离线
谢谢7楼的大侠.
此段命令可以顺利运行最后一个盘的abc.exe了.十分感谢.
但如果abc.exe在倒数第二个盘.命令应该如何写呢?请赐教.
9 发表于 2008-08-03 01:31 ·  中国 广东 茂名 化州市 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
@echo off& Setlocal EnableDelayedExpansion

for %%i in (z y x w v u t s r q p o n m l k j i h g f e d c) do (
if exist %%i:\nul (set num=%%i&<nul set/p=%%i,>>a.txt)
)
for /f "tokens=1,2,3 delims=," %%i in (a.txt) do set drive=%%j
del a.txt

start %drive%:\abc.exe
10 十分感谢 发表于 2008-08-03 14:04 ·  中国 广东 广州 电信
初级用户
积分 28
发帖 12
注册 2008-07-26 20:22
17年会员
UID 122162
性别 男
来自 广州
状态 离线
谢谢9楼的大侠
你的答题是一针见血,立竿见影.你才应该是金牌会员.是高手中的高手.
我是初学,提问题也不会提.经过你答案的提示,我想是提问的问题太幼稚了.
其实,我应问:如何运行不知盘中的abc.exe程序?这就不用反复提问了.
如何运行不知盘中的abc.exe程序?这段批处理能再帮我写一写呢?
谢谢.

[ Last edited by 25167241 on 2008-8-3 at 08:39 PM ]
11 发表于 2008-08-06 08:42 ·  中国 广西 北海 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
给你个思路,全盘搜索赋予变量。直接加上start 你的变量。
全盘搜索可以利用WMI也可以用FOR
12 发表于 2008-08-06 19:45 ·  中国 广东 广州 电信
初级用户
积分 28
发帖 12
注册 2008-07-26 20:22
17年会员
UID 122162
性别 男
来自 广州
状态 离线
11楼的大侠.
我水平太低,不会写.请求你帮我写一写.
谢谢了.
13 发表于 2008-08-07 22:18 ·  中国 广东 汕头 联通
初级用户
积分 21
发帖 7
注册 2007-11-17 20:53
18年会员
UID 102966
性别 男
状态 离线
可否全盘搜索任意目录下的程序并执行呢
论坛跳转: