标题: [文件操作] 如果调用运行最小的bat [打印本页]
作者: iii888iii 时间: 2022-8-10 23:23 标题: 如果调用运行最小的bat
我想,把 这句:
start "" "%Run%"
改为,调用运行一个bat。这个bat在一个文件夹。 格式是 数字.bat 文件名不确定。
每次调用,数字最小.bat
哪位老师帮忙一下。
下面是原代码:
@echo off & title 敌后任务循环中
color 0a & mode 35,5
::设置监测的进程名
set Proc=A.exe
::设置进程总数
set Number=5
::设置启动的进程,需绝对或相对路径
set Run=C:\B.exe
::开始监测
oop
cls & echo 进程监测中。。
set Num=0
for /f "delims=" %%a in ('tasklist ^| findstr /i "%Proc%" 2^>nul') do set /a Num+=1
if %Num% lss %Number% (
echo, & color 0c
echo 进程缺失,当前只有 %Num% 个进程。
echo 启动相关指定进程后,继续监测。
start "" "%Run%"
ping 127.0.0.1 -n "2">nul
color 0a
) else (
echo, & echo 进程一切正常。
)
::等待300秒后继续监测
ping 127.0.0.1 -n "300">nul
goto Loop
作者: flashercs 时间: 2022-8-11 00:05
- setlocal enabledelayedexpansion
- set min=2147483647
- for %%A in ("d:\test\*.bat") do (
- if %%~nA lss !min! set min=%%~nA
- )
- start "" "d:\test\%min%.bat"
- endlocal
复制代码
作者: iii888iii 时间: 2022-8-11 12:07
@echo off & title 敌后任务循环中
color 0a & mode 35,5
setlocal enabledelayedexpansion
set min=2147483647
for %%A in ("C:\Users\Administrator\Desktop\开机\d敌后循环\敌后没做\*.bat") do (
if %%~nA lss !min! set min=%%~nA
)
endlocal
::设置监测的进程名
set Proc=vmware-vmx.exe
::设置进程总数
set Number=15
::设置启动的进程,需绝对或相对路径
set Run=C:\B.exe
::开始监测
oop
cls & echo 进程监测中。。
set Num=0
for /f "delims=" %%a in ('tasklist ^| findstr /i "%Proc%" 2^>nul') do set /a Num+=1
if %Num% lss %Number% (
echo, & color 0c
echo 进程缺失,当前只有 %Num% 个进程。
echo 启动相关指定进程后,继续监测。
ping 127.0.0.1 -n "2">nul
start "" "d:\test\%min%.bat"
ping 127.0.0.1 -n "2">nul
color 0a
) else (
echo, & echo 进程一切正常。
)
pause
exit
作者: iii888iii 时间: 2022-8-11 12:08
系统找不到文件 运行的是d:\test\.bat
上面路径没写对于,对于,也这个结果。
作者: Batcher 时间: 2022-8-11 15:03
回复 3# iii888iii
开启变量延迟扩展- @echo off
- REM 设置监测的进程名
- set "Proc=A.exe"
- REM 设置进程总数
- set "Number=5"
- REM 设置待调用的bat所在文件夹的完整路径
- set "Run=D:\test"
-
- REM 开始监测
- :Loop
- set "Num=0"
- for /f "delims=" %%a in ('tasklist ^| findstr /i "%Proc%" 2^>nul') do (
- set /a Num+=1
- )
-
- if %Num% lss %Number% (
- echo 进程缺失,当前只有 %Num% 个进程。
- echo 启动相关指定进程后,继续监测。
- setlocal enabledelayedexpansion
- set "min=2147483647"
- for %%A in ("%Run%\*.bat") do (
- if %%~nA lss !min! (
- set min=%%~nA
- )
- )
- start "" "%Run%\!min!.bat"
- endlocal
- ) else (
- echo 进程一切正常。
- )
-
- REM 等待300秒后继续监测
- ping 127.0.0.1 -n 300 >nul
- goto :Loop
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |