Board logo

标题: 帮忙改改重复运行的批处理 [打印本页]

作者: 25167241     时间: 2008-7-27 11:54    标题: 帮忙改改重复运行的批处理

我是新手.我想运行不知盘符分区中的一个程序.如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次.
请高手帮忙改一改.程序是在最后一个盘的,就是不知盘符.我初学,可能这样写批处理不行,帮我重写也行.总之能运行最后一个盘的程序就成.谢谢.
作者: greenldy     时间: 2008-7-27 12:30
@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
作者: 25167241     时间: 2008-7-27 15:04    标题: 谢谢

谢谢2楼,还有个问题,如果逐行运行命令,自然可以.
但是,一起运行,到指定的运行的程序,还来不及运行,就跳到下一行命令了,结果还是不能运行指定的运行的程序,能否在每段命令中,暂停30秒,让指定的程序运行呢?

[ Last edited by 25167241 on 2008-7-27 at 05:33 PM ]
作者: fastslz     时间: 2008-7-28 12:41
运行环境?
纯DOS?
CMD?
作者: jh1688     时间: 2008-7-28 20:55
是呀,楼主到底是在什么环境下运行该程序,请说明一下,别人才好帮你!!
作者: ljb603     时间: 2008-7-28 22:50
先将 abc.exe 放入虚拟内存盘就可以了
作者: jiulong     时间: 2008-7-29 08:22
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
作者: 25167241     时间: 2008-8-1 17:24    标题: 请再改一下

谢谢7楼的大侠.
此段命令可以顺利运行最后一个盘的abc.exe了.十分感谢.
但如果abc.exe在倒数第二个盘.命令应该如何写呢?请赐教.
作者: jiulong     时间: 2008-8-3 01:31
@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
作者: 25167241     时间: 2008-8-3 14:04    标题: 十分感谢

谢谢9楼的大侠
你的答题是一针见血,立竿见影.你才应该是金牌会员.是高手中的高手.
我是初学,提问题也不会提.经过你答案的提示,我想是提问的问题太幼稚了.
其实,我应问:如何运行不知盘中的abc.exe程序?这就不用反复提问了.
如何运行不知盘中的abc.exe程序?这段批处理能再帮我写一写呢?
谢谢.

[ Last edited by 25167241 on 2008-8-3 at 08:39 PM ]
作者: jiulong     时间: 2008-8-6 08:42
给你个思路,全盘搜索赋予变量。直接加上start 你的变量。
全盘搜索可以利用WMI也可以用FOR
作者: 25167241     时间: 2008-8-6 19:45
11楼的大侠.
我水平太低,不会写.请求你帮我写一写.
谢谢了.
作者: styusi     时间: 2008-8-7 22:18
可否全盘搜索任意目录下的程序并执行呢