2016-05-16 22 views
0

我正在创建一个批处理文件,这将打开另一个程序,然后等待并关闭先前打开的程序。 存在的问题是,有必要的是,批处理文件等待每个它的打开时间不同的时间量。 例如我需要在批处理文件中创建一个延迟,该批处理文件在两个给定数字之间变化

start "Your_Program_here" 
timeout 20 
taskkill /f /im "Your_Program_here" 

上面的例子工作,但每次都有相同的延迟。 我怎样才能让它变化?

回答

1

您是否需要等待第一个过程完成其执行的时间?或者只是一个简单的thread.sleep,因为你想要它?

,如果是这样的话,我已经成功地使用自平

ping 127.0.0.1 -n 10 > nul 

旁边-n数量要等待的秒数使用的伎俩。

+0

我需要它来启动程序,然后等待并结束该程序。该程序会自动执行。我需要批处理文件来规定程序执行它的时间。 – Trippledixx

1

使用%RANDOM%

start "Your_Program_here" timeout %random% taskkill /f /im "Your_Program_here" 

%RANDOM%产生从0到32,767(含)

0≤%RANDOM%≤32767

您还可以随机整数通过将%RANDOM%乘以(或除)另一个数字来缩放此范围以满足您的需求。

source

1

你需要创建一个运行的程序,然后关闭在d算法/吨时

,并在此代码,你必须创建包含一个文件要打开的文件。名称它“file.lst”

@echo off 
setlocal 
set f=0 
set s=0 
set d=0 
for /f "tokens=*" %%a in ('type file.LST') do (set /a f=f+1 &&::%%a) 
:s 
set /a d=d+3 &::you can replace 3 as any number that you wanna to be rate 
for /f "tokens=*" %%b in (file.LST) do (if not "%f%"=="%s%" (
start "" %%b 
set /a s=s+1 
timeout %f% 
taskkill /im %%b /f 
) 
) 
goto s 

感谢#naty