|
|
本人是新人,以前只用过一些简单的批处理,对于 for 、if、tokens等命令从来没有接触过,现在想好好学一下。
但是看教程,实在是看不进去,看一会就瞌睡了,所以就找一些感兴趣的批处理逐行来分析含义,想通过这个方法来了解批处理!
本人基础实在是差劲,所以有些命令即使找到了相应的解说,还是不太了解!
大家看一下hanyeguxing老大的一个批处理,这个是我现在非常需要用的,虽然它解决了我的问题,但我想了解一下这个批处理的运行原理!- @echo off&setlocal enabledelayedexpansion
- for /F "tokens=1,2" %%i in ('Tasklist /nh') do (call:hanye "%%i"
- if !n! gtr 20 ntsd -c q -p %%j)
- exit
- :hanye
- set "i=%~1"&set n=0
- :guxing
- if not "!i:~%n%,1!"=="" set/a n+=1&goto:guxing
复制代码 前四行我基本上已经理解了,但后面set "i=%~1"&set n=0和if not "!i:~%n%,1!"=="" set/a n+=1实在是不能理解透,希望论坛上的老大们可以帮助我,给我一详细的解释,谢谢了!!
我找到的关于上面用到的一些命令的解释,帮我看看是不是正确!
Tasklist 显示进程
Tasklist /nh 显示进程,但不显示标题
tokens=1,2 提取第一列和第二列
call:hanye 调用hanye的命令
set 设置的意思
gtr 大于
ntsd -c q -p 利用进程的PID来结束进程
%% 批处理变量引导符(命令符下需要一个,批处理中需要两个)
:hanye 批处理标签引导符(这行开始时hanye的批处理内容)
& 符号允许在一行中使用2个以上不同的命令,当第一个命令执行失败将不影响第2个命令的执行。
&& 符号也是允许在一行中使用2个以上不同的命令,当第一个命令执行失败后后续的命令将不会再被执行。
%%i 第一个变量
%%j 第二个变量
if 如果的意思
"==" 用if检测字符串是否相等的时候,后面用的不是“=”,而是“==” |
评分
-
查看全部评分
|