Dos编程学习笔记 之三

1.       使用dos命令监控进程

Unix/Linux系统上,可以很方便的使用ps命令查看当前进程的活动情况;而在windows上,也有类似的命令,就是tasklist

所以我们可以这样写一个脚本去监控进程是否存在并启动它。(假设进程名为1.exe)

@echo off

:checkloop

tasklist |findstr /I “1.exe” || start “” “C:/1.exe”

timeout /t 5

goto :checkloop

当然我们也可以监控并杀死进程,如下:

         @echo off

:checkloop

tasklist |findstr /I “1.exe” || taskkill /F 1.exe

timeout /t 5

goto :checkloop

         另外一个例子:(尚未研究明白)

@echo off

set "num=0"

:loop

for /f "tokens=2" %%i in ('tasklist ^|findstr "A.exe"') do (

        if not defined %%i set %%i=%%i & set /a num+=1

        if %num% GTR 5 taskkill /pid %%i /T &set /a num-=1&set "%%i="

)

ping 127.1 –n 10 >nul

goto :loop

关于tasklisttaskkill命令,可以查看其帮助文件获取更多信息。

2.       Dos编程中的 setlocal 与变量延迟

先看个例子:

           @echo off

           set a=4

           set a=5 & echo %a%

           pause

执行完毕,显示: 4

 

再看一个例子:(开启变量延迟)

           @echo off

           setlocal enabledelayedexpansion

           set a=4

           set a=5 & echo !a!

           pause

执行完毕,显示: 5

 

说明:

DOS中有一个变量延迟的概念,没有开启该功能之前,变量会被预读;而开启了之后,就允许在运行的当前行对变量赋值,如 set a=5 & echo !a!。这里注意,开启了功能之后,变量要用”!”引起来。

没有开启变量延迟的情况下,某条命令行的变量改变,必须到下一条才能体现。

         不适用中间变量交换二者数据,如下:

@echo off

set var1=abc

set var2=123

echo 交换前: var1=%var1% var2=%var2%

set var1=%var2%& set var2=%var1%

echo 交换后: var1=%var1% var2=%var2%

pause

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值