FOR命令详解

FOR命令详解
FOR命令详解

格式:FOR [参数] %%变量名IN (相关文件或命令) DO 执行的命令

作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果。

注意:在批处理文件中使用FOR 命令时,指定变量请使用%%variable,而不要用%varia ble。变量名称是区分大小写的,所以%i 不同于%I.

关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f

下面分别解释一下

零:无参数时:

---

FOR %variable IN (set) DO command [command-parameters]

%variable 指定一个单一字母可替换的参数。

(set) 指定一个或一组文件。可以使用通配符。

command 指定对每个文件执行的命令。

command-parameters

为特定命令指定参数或命令行开关。

TTT示例:

for %%i in (t*.*) do echo %%i --显示当前目录下与t*.*相匹配的文件(只显示文件名,不显示路径)

for %%i in (d:\mydocuments\*.doc) do @echo %%i --显示d:\mydocuments\目录下与*.doc相匹配的文件

一、参数/d (参数只能显示当前目录下的目录名字)

格式:FOR /D %variable IN (set) DO command [command-parameters] 这个参数主要用于目录搜索,不会搜索文件,/D 参数只能显示当前目录下的目录名字。(TTT特别说明:只会搜索指定目录下的目录,不会搜索再下一级的目录。)

TTT示例:

for /d %%i in (c:\*) do echo %%i --显示c盘根目录下的所有目录

for /d %%i in (???) do echo %%i --显示当前目录下名字只有1-3个字母的目录

二、参数/R (搜索指定路径及所有子目录中与set相符合的所有文件)

格式:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] 此命令会搜索指定路径及所有子目录中与set相符合的所有文件,注意是指定路径及所有子目录。

1、set中的文件名如果含有通配符(?或*),则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。

2、如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录)(并在后面加上具体的文件名),而不管set中的指定文件是否存在。

例:for /r c:\ %%i in (*.exe) do echo %%i --把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了!!!!

TTT示例:

for /r c:\ %%i in (boot.ini) do echo %%i --枚举了c盘所有目录

for /r d:\backup %%i in (1) do echo %%i --枚举d\backup目录

for /r c:\ %%i in (boot.ini) do if exist %%i echo %%i --很好的搜索命令,列举b oot.ini存在的目录

三、参数/L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的Step)

格式:FOR /L %variable IN (start,step,end) DO command [command-parameters] 该集表示以增量形式从开始到结束的一个数字序列。可以使用负的Step

TTT示例:

for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5

for /l %%i in (1,2,10) do @echo %%i --输出1,3,5,7,9

for /l %%i in (100,-20,1) do @echo %%i --输出100,80,60,40,20

for /l %%i in (1,1,5) do start cmd --打开5个CMD窗口

for /l %%i in (1,1,5) do md %%i --建立从1~5共5个文件夹

for /l %%i in (1,1,5) do rd /q %%i --删除从1~5共5个文件夹

四、参数/F (使用文件解析来处理命令输出、字符串及文件内容。)

这个参数是最难的,参数又多,先简单的解释一下:for命令带这个参数可以分析文件内容,字符串内容或某一命令输出的结果,并通过设置option得我们想要的结果。

以下是某高手的解释,感觉有点太专业了,自认为不太容易理解,也列一下:

[迭代及文件解析--使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量

定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options

令牌选项指定哪些令牌应该作为迭代变量传递。

请注意:在没有使用令牌选项时,/F 将只检查第一个令牌。文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行以及再将每行解析成零个或更多个令牌。然后通过设置为令牌的迭代变量值,调用for 循环。

默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行。]

(TTT补充说明:

一般在tokens后只指定第一个参数,如%%i或%%a,在后面使用第二个及两个以上

的参数,自动按顺序往下排即可。如前面指定的是%%a,后面则用%%b代表第二个结果,%%c代表第三个结果。。。测试了一下tokens后指定多个变量名,没有测试成功,应该是不可以的。所以token后只能跟要使用的第一个变量名

如果使用的变量名超过了%z或%Z,就无法使用了,曾经以为会循环过来:如%%z后可以使用%%a或%%A,但经测试,这是不可以的。

如:for /f "tokens=1,2,3* delims=-, " %%y in ("aa bb,cc-dd ee") do echo %%y %%z %%A %%a --只会输出前两个字符串,后面的两个变量是无效的。)

TTT:下面列我做的几个例子:

1,分析文件的例子

FOR /F "eol=; tokens=1,2* delims=,- " %%i in (d:\test.txt) do echo %%i %%j %%k

2,分析字符串的例子:

for /f "tokens=1,2,3* delims=-, " %%i in ("aa bb,cc-dd ee") do echo %%i %% j %%k %%l

3,分析命令输出的例子:

FOR /F "tokens=1* delims==" %%i IN ('set') DO @echo [%%i----%%j]

执行后,我们看CMD的回显如下:

1111 #字符串前的引号被删除了

2222 #字符串首尾的引号都被删除了

3333" #字符串前无引号,后面的引号保留

4444"44 #字符串前面的引号删除了,而中间的引号保留

55"55"55 #字符串前面的引号删除了,而中间的引号保留

请按任意键继续. . .

结果和之前temp.txt中的内容对比一下,我们会发现第1、2、5行的引号都消失了,这就是删除引号~i的作用了!

二、%~fI - 将%I 扩展到一个完全合格的路径名

示例:

把代码保存放在随便哪个地方,我这里就放桌面吧.

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~fi

pause

执行后显示内容如下

C:\Documents and Settings\Administrator\桌面\test.bat

C:\Documents and Settings\Administrator\桌面\test.vbs

当我把代码中的%%~fi直接改成%%i

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%i

pause

执行后就会显示以下内容:

test.bat

test.vbs

通过对比,我们很容易就看出没有路径了,这就是"将%I 扩展到一个完全合格的路径名"的作用,也就是如果%i变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单单打印一个文件名,自己动手动实验下就知道了!

三、%~dI - 仅将%I 扩展到一个驱动器号

看例子:

代码如下,我还是放到桌面执行!

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~di

pause

执行后我CMD里显示如下

C:

C:

我桌面就两个文件test.bat,test.vbs,%%~di作用是,如果变量%%i的内容是一个文件或者目录名,他就会把他这文件或者目录所在的盘符号打印出来!

四、%~pI - 仅将%I 扩展到一个路径

这个用法和上面一样,他只打印路径不打印文件名字

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~pi

pause

我就不打结果了,大家自己复制代码看结果吧,下面几个都是这么个用法,代码给出来,大家自己看结果吧!

五、%~nI - 仅将%I 扩展到一个文件名

只打印文件名字

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ni

pause

六、%~xI - 仅将%I 扩展到一个文件扩展名

只打印文件的扩展名

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~xi

pause

七、%~sI - 扩展的路径只含有短名

打印绝对短文件名

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~si

pause

八、%~aI - 将%I 扩展到文件的文件属性

打印文件的属性

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ai

pause

九、%~tI - 将%I 扩展到文件的日期/时间

打印文件建立的日期

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~ti

pause

十、%~zI - 将%I 扩展到文件的大小

打印文件的大小

FOR /F "delims==" %%i IN ('dir /b') DO @echo %%~zi

pause

龙卷风补充:上面例子中的"delims=="可以改为"delims=",即不要分隔符

十一、%~$PATH:I - 查找列在路径环境变量的目录,并将%I 扩展到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串

这是最后一个,和上面那些都不一样,我单独说说!

然后在把这些代码保存为批处理,放在桌面。

@echo off

FOR /F "delims=" %%i IN (“notepad.exe”) DO echo %%~$PATH:i

pause

龙卷风补充:上面代码显示结果为C:\WINDOWS\system32\notepad.exe

他的意思就在PATH变量里指定的路径里搜索notepad.exe文件,如果有notepad.exe 则会把他所在绝对路径打印出来,没有就打印一个错误!

(TTT说明,保存到桌面上,运行显示结果为:系统找不到文件“notepad.exe”。查看环境变量path中确实有这个路径,不明原因!后来发现了,原来是中文引号的原因。

上面的命令应该写成:

FOR /F "delims=" %%i IN ("notepad.exe") DO echo %%~$PATH:i

)

AIX的vmstat命令详解

AIX的vmstat命令详解(原创) vmstat概述 vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和CPU 活动的统计信息。由vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。 Interval 参数指定每个报告之间的时间量(以秒计)。第一个报告包含系统启动后时间的统计信息。后续报告包含自从前一个报告起的时间间隔过程中所收集的统计信息。如果没有指定Interval 参数,vmstat 命令生成单个报告然后退出。Count 参数只能和Interval 参数一起指定。如果指定了Count 参数,其值决定生成的报告数目和相互间隔的秒数。如果Interval 参数被指定而没有Count 参数,则连续生成报告。Count 参数不允许为0。 内核为内核线程、调页和中断活动维护统计信息,vmstat 命令通过使用perfstat 内核扩展来对其进行访问。磁盘输入/输出统计信息由设备驱动程序维护。对于磁盘,利用活动时间和传送信息数量来确定平均传送速率。活动时间的百分数根据报告期间驱动器忙的时间量来计算。 vmstat命令输出详解 输出样例 #vmstat 1 2 System configuration: lcpu=8 mem=15360MB kthr memory page faults cpu ----- ---------------------------- ---------------------- ------------ ---------------------------------------- r b avm fre re pi po fr sr cy in sy cs us sy id wa 1 0 1614482 971363 0 0 0 0 0 0 56 4997 2739 1 1 97 0 0 0 1614484 971361 0 0 0 0 0 0 23 4435 2677 1 1 97 0 Kthr kernel thread state(内核线程状态,表示每秒钟在采样间隔时间上对各种队列的内核线程数求得的平均值) r: 取样期间可运行的内核线程的平均数,包括正在运行的线程和指准备运行但尚在等待运行的进程。

批处理命令行for语句

for语句可以在命令行提示符中使用,也可以在批处理文件中使用。这两种情况下唯一的区别是%和%%,参加下文说明。 一、for语句的格式: for [参数] 变量in (集合) do 命令[命令的参数] 二、for语句的作用:对集合内的元素逐一执行后面的命令。 1、如:for %%i in (你好) do echo %%i 将在屏幕上显示“你好”2个字。这里集合是“你好”,执行的命令是“echo”。由于集合中只有1个元素,因此循环只运行一次。 如果改成for %%i in (你好朋友) do echo %%i 将会显示2行文字,第一行为“你好”,第二行为“朋友”。因为2个词之间有空格,因此集合中就有了2个元素,循环将运行2次。 2、注意:以上for语句的运行方式是新建一个批处理文件,即扩展名为“.bat”的文件,内容为上面的命令,然后运行。为了批处理执行完不退出,可在最后加上一条pause>null命令,这样能看到执行的结果。要想通过cmd命令行执行的话,必须将%%换成%,即去掉一个%,如下: for %i in (你好) do echo %i 3、以下所有例子都是这样,若要在命令行提示符下执行,请将所有的%%改成一个%。 三、for语句详细说明: 上面语句格式中有的加了中括号[],表示这个语句元素不是必须的,只在需要时使用。像刚才显示“你好”的命令中就没有使用[参数]这

个语句元素。所有语句元素间用空格隔开。 各语句元素的写法:for、in、do这3个符号是固定不变的 1、[参数]的种类:只有4种,分别是/d、/r、/l、/f(即目录Directory、递归recursion、序列list、文件file),他们用于对后面的集合的含义做出解释,请与下面的集合解释结合来看。这4个参数不区分大小写,可以联合使用,即一条for语句可以出现多个参数。 2、变量:除10个数字外(0-9)的所有符号(因为0-9往往作为形参使用,为了与此区别),变量名一般用单个字母表示即可,而且变量名区分大小写,即A和a是两个不同的变量。变量名前面必须是%,当在命令提示符下执行时,只用一个%;而在批处理程序中,必须用%%。 一行语句中,一般只需定义一个变量。使用/f参数中的tokens 选项可以将集合中的元素分解成多个值,并自动定义新的变量对应这些值。这时语句中可以使用多个变量,通常按字母顺序命名,即第一个是%%a,那么后一个就用%%b。如果第一个是%%i,后一个就用%%j。依此类推。具体看后面的相关内容。 变量可以直接在do后面的命令中使用。每次使用的变量总数不超过52个。 3、集合:集合必须放在括号里。集合是一行文本,这行文本可能有几种类型,如“你好”只是一串字符;“c:\boot.ini”是一个文件;“dir /b”是一个命令。 (1)如果for语句中没有使用任何参数,对待集合文本的处理方式是:

批处理命令for语句基本用法

批处理命令for语句的基本用法 [系列教程]批处理for语句从入门到精通[20101225更新] ____________________________版主提醒 ____________________________ 文档来自于网络搜索 为了避免影响技术讨论、提高看帖的舒适性,请大家不要在此帖下跟 无实质内容的口水帖,特别是纯顶、纯支持、纯感谢、路过之类的帖子, 管理人员将不定期清理此类回帖,请大家多参与讨论少灌水,与人方便, 终将给自己带来方便,谢谢合作。 ________________________________________________________________ 文档来自于网络搜索 批处理是一门简单的脚本语言,虽然不能独当一面,但是,若作为工作中的辅助工具,绝对会让大家有随用随写、称心如意的畅快感。 文档来自于网络搜索 和其他语言相比,批处理语言有其先天性的优势: 1、系统自带,无需另行安装; 2、命令少,语句简洁,上手非常快; 3、编写出来的脚本小巧玲珑,随写随用; 但是,因为它以命令行方式工作,操作多有不便,在图形界面大行其道的windows世界里,多多少少会让大众望而却步;就算是对命令行有好感的新手,面对微软有如天书的帮助文件,很多人也会败下阵来,因此,论坛里很多会员也发出了编写系统的批处理教程的呼声。

文档来自于网络搜索 编写系统的批处理新手教程,一直是论坛管理层讨论的热点问题,但是,各位管理人员大多都有工作在身,而系统的教程涉及的面是如此之广,面对如此浩大的工程,仅凭一两个人的力量,是难以做好的,因此,本人退而求其次,此次发布的教程,以专题的形式编写,日后人手渐多之后,再考虑组织人力编写全面的教程。 文档来自于网络搜索之所以选择最难的for,一是觉得for最为强大,是大多数人最希望掌握的;二是若写其他命令教程,如果没有for的基础,展开来讲解会无从下手;三是for也是批处理中最复杂最难掌握的语句,把它攻克了,批处理的学习将会一片坦途。 文档来自于网络搜索 这次的for语句系列教程,打算按照for语句的5种句式逐一展开,在讲解for/f的时候,会穿插讲解批处理中一个最为关键、也是新手最容易犯错的概念:变量延迟,大纲如下: 文档来自于网络搜索一前言 二for语句的基本用法 三for /f(含变量延迟) 四for /r 五for /d 六for /l 遵照yibantiaokuan的建议,在顶楼放出此教程的txt版本、word版本和pdf版本,以方便那些离线浏览的会员。 文档来自于网络搜索[本帖最后由namejm于2010-12-26 02:36编辑]

iostat命令解释

iostat iostat用于输出CPU和磁盘I/O相关的统计信息. 命令格式: iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ] 1)iostat的简单使用 iostat可以显示CPU和I/O系统的负载情况及分区状态信息. 直接执行iostat可以显示下面内容: # iostat # iostat –xm 带XM参数显示扩展信息并将磁盘数据有每扇区改为每兆显示(1扇区等于512字节) 各个输出项目的含义如下: avg-cpu段: %user: 在用户级别运行所使用的CPU的百分比. %nice: nice操作所使用的CPU的百分比. %sys: 在系统级别(kernel)运行所使用CPU的百分比. %iowait: CPU等待硬件I/O时,所占用CPU百分比.

%idle: CPU空闲时间的百分比. Device段: tps: 每秒钟发送到的I/O请求数. Blk_read /s: 每秒读取的block数. Blk_wrtn/s: 每秒写入的block数. Blk_read: 读入的block总数. Blk_wrtn: 写入的block总数. 2)iostat参数说明 iostat各个参数说明: -c 仅显示CPU统计信息.与-d选项互斥. -d 仅显示磁盘统计信息.与-c选项互斥. -k 以K为单位显示每秒的磁盘请求数,默认单位块. -p device | ALL 与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如: # iostat -p hda 或显示所有设备 # iostat -p ALL -t 在输出数据时,打印搜集数据的时间. -V 打印版本号和帮助信息. -x 输出扩展信息. 3)iostat输出项目说明 Blk_read 读入块的当总数. Blk_wrtn 写入块的总数. kB_read/s 每秒从驱动器读入的数据量,单位为K. kB_wrtn/s 每秒向驱动器写入的数据量,单位为K. kB_read 读入的数据总量,单位为K. kB_wrtn 写入的数据总量,单位为K.

实用批处理(bat)教程

目录 第一章批处理基础 第一节常用批处理内部命令简介 1、REM 和:: 2、ECHO 和@ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和: 9、FIND 10、START 11、assoc 和ftype 12、pushd 和popd 13、CALL 14、shift 15、IF 16、setlocal 与变量延迟(ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION 启动或停用延缓环境变量扩展名。) 17、ATTRIB显示或更改文件属性 第二节常用特殊符号 1、@命令行回显屏蔽符 2、%批处理变量引导符 3、> 重定向符 4、>>重定向符 5、<、>、<& 重定向符 6、|命令管道符 7、^转义字符 8、组合命令 9、& 组合命令 10、||组合命令 11、\"\"字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号 第二章FOR命令详解 一、基本格式 二、参数/d仅为目录 三、参数/R递归(文件名) 四、参数/L迭代数值范围 五、参数/F迭代及文件解析 第三章FOR命令中的变量

一、~I- 删除任何引号(\"),扩展%I 二、%~fI- 将%I 扩展到一个完全合格的路径名 三、%~dI- 仅将%I 扩展到一个驱动器号 四、%~pI- 仅将%I 扩展到一个路径 五、%~nI- 仅将%I 扩展到一个文件名 六、%~xI- 仅将%I 扩展到一个文件扩展名 七、%~sI- 扩展的路径只含有短名 八、%~aI- 将%I 扩展到文件的文件属性 九、%~tI- 将%I 扩展到文件的日期/时间 十、%~zI- 将%I 扩展到文件的大小 十一、%~$PATH:I 第四章批处理中的变量 一、系统变量 二、自定义变量 第五章set命令详解 一、用set命令设置自定义变量 二、用set命令进行简单计算 三、用set命令进行字符串处理 1、字符串替换 2、字符串截取 第六章if命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command 第三种用法:IF [NOT] EXIST filename command 第四种用法:IF增强的用法 第七章DOS编程高级技巧 一、界面设计 二、if…else…条件语句 三、循环语句 四、子程序 五、用ftp命令实现自动下载 六、用7-ZIP实现命令行压缩和解压功能 七、调用VBScript程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping命令延时 2、利用for命令延时 3、利用vbs延迟函数,精确度毫秒,误差1000毫秒内 4、仅用批处理命令实现任意时间延迟,精确度10毫秒,误差50毫秒内 十、模拟进度条 十一、特殊字符的输入及应用 十二、随机数(%random%)的应用技巧 十三、变量嵌套与命令嵌套 1、更正了所有的错别字,适当排版,增加条理性。

IBM-AIX命令详解

AIX常用命令 AIX系统的设备有四种状态: Undefined(未定义):表示系统无法识别该设备,也就是系统找不到该设备。Defined(定义):表示系统可以识别设备,但是系统不能使用它。Available(可用):表示该设备在系统中可以使用,用户也可以使用。Stopped(停用):表示设备不能被使用,但操作系统通过驱动程序可以识别它。------------------------------------------------------------------------------- 一、查看错误记录 1、显示错误:errpt 2、显示详细的错误信息:errpt -a 或errpt -a|more 3、清空错误记录信息:errclear 0 二、查看文件系统 df -g 【以G为单位检查】或df -k 【以K为单位检查】 三、查看系统中的设备及其特征 lsdev -C显示的设备都已经安装在系统中。 lsdev -P显示系统预定义设备数据库中的所有设备,即系统能支持的设备。【举例】 1、查看硬盘: lsdev –Cc disk 2、看磁带机: lsdev –Cc tape 3、查看适配卡: lsdev –Cc adapter 4、处理器个数:lsdev –C|grep proc 【grep:强大的文本搜索工具,并把匹配的行打印出来(类似于find)】

5、查看预定义设备对象类中的所有设备,并具有列头:lsdev -P -H 6、要列出预定义设备对象类中的受支持的设备类,输入:lsdev -P -r class 7、要列出其名称以字母‘hdi’开头的所有设备:lsdev -l hdi* 8、要列出所有子pci0 总线,请输入:lsdev -p pci0 9、要列出其名称包含在文件/tmp/f 中的设备,输入:cat /tmp/f | lsdev -l - 四、显示系统的配置信息、诊断信息和重要产品数据(VPD)信息 lscfg -vp获取所有已配置硬件设备的详细信息 【举例】 1、查看硬盘信息: lscfg –vl hdiskx x表示数字 2、查看网卡信息: lscfg –vl entx x表示数字 3、查看磁带机: lscfg –vl rmtx x表示数字 4、要在每一行显示带有设备描述的系统配置:lscfg -s 5、要显示由逻辑名ent0 指定的特定设备的VPD:lscfg -v -l ent0 6、要显示不带有VPD 的逻辑名hdisk(或proc)所指定设备的名称、位置和描述:lscfg -l hdisk(或proc)\* 7、要将开放固件设备树中相应节点的VPD 显示到ent0 设备中: lscfg -vp -l ent0 五、查看硬件属性 lsattr:用于读取指定设备的配置属性,部分属性可更改 lsattr –El获取已配置设备的属性信息。 【举例】 查看硬盘属性: lsattr –El hdiskx x表示数字

批处理内部命令简介

一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo命令将显示当前回显设置。 语法 echo [{on off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用>>>^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。 2.@ 命令 表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait aminite... @format X: /q/u/autoset (format这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。) 3.Goto 命令 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 语法:goto label(label是参数,指定所要转向的批处理程序中的行。) Sample: if {%1}=={} goto noparms if {%2}=={} gotonoparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。) @Rem check parameters if null show usage

:noparms echo Usage: monitor.bat ServerIP PortNumber goto end 标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto 命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 4.Rem 命令 注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。 Rem Message Sample:@Rem Here is the description. 5.Pause 命令 运行Pause 命令时,将显示下面的消息: Press any key to continue . . . Sample: @echo off :begin copy a:*.* d:\back echo Please put a new disk into driver A pause goto begin 在这个例子中,驱动器A中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器A 时,pause命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。

iostat命令详解

iostat命令详解 2009-11-02 20:41 iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]基本语法: iostat interval count option - 让你指定所需信息的设备,像磁盘、cpu或者终端(-d , -c , -t or -tdc ) 。x 选项给出了完整的统计结果。iostat的默认参数是tdc(terminal, disk, and CPU)。如果任何其他的选项被指定,这个默认参数将被完全替代。 interval –统计运行的间隔时间(秒), count –统计运行的次数 其中,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes 字节显示数据;-t为打印汇报的时间;-v表示打印出版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备; iostat -d -k -t 2 Device: 显示磁盘名称 tps: 表示每秒钟输出到物理磁盘的传输次数。一次传输就是一个对物理磁盘的 I/O 请求。多个逻辑请求可被并为对磁盘的一个单一 I/O 请求。传输具有中等的大小。 kB_read/s: 每秒从磁盘读取的数据量,单位为KB。 kB_wrtn/s: 每秒从写入磁盘的数据量,单位为KB。 Kb_read: 读取的 KB 总数。 Kb_wrtn: 写入的 KB 总数 iostat -x 1 10 rrqm/s:每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s:每秒进行 merge 的写操作数目。即 delta(wmerge)/s r/s:每秒完成的读 I/O 设备次数。即 delta(rio)/s w/s:每秒完成的写 I/O 设备次数。即 delta(wio)/s rsec/s:每秒读扇区数。即 delta(rsect)/s wsec/s: 每秒写扇区数。即 delta(wsect)/s rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算) wkB/s:每秒写K字节数。是 wsect/s 的一半。(需要计算) avgrq-sz:平均每次设备I/O操作的数据大小 (扇区)。 delta(rsect+wsect)/delta(rio+wio) avgqu-sz:平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。await:平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio) svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) %util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒) svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出

批处理基础知识

批处理文件基础知识 一、单符号message指定让MS-DOS在屏幕上显示的正文 ~ ①在for中表示使用增强的变量扩展。 ②在%var:~n,m%中表示使用扩展环境变量指定位置的字符串。 ③在set/a中表示一元运算符,将操作数按位取反。 ! ①在set /a中一元运算符,表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。 @ ①隐藏命令行本身的回显,常用于批处理中。 % ①在set /a中的二元运算符,表示算术取余。 ②命令行环境下,在for命令in前,后面接一个字符(可以是字母、数字或者一些特定字符),表示指定一个循环或者遍历指标变量。 ③批处理中,后接一个数字表示引用本批处理当前执行时的指定的参数。 ④其它情况下,%将会被脱去(批处理)或保留(命令行) ^ ①取消特定字符的转义作用,比如& | > < ! "等,但不包括%。比如要在屏幕显示一些特殊的字符,比如> >> | ^ &等符号时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了; ②在set/a中的二元运算符,表示按位异或。 ③在findstr/r的[]中表示不匹配指定的字符集。 & ①命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令。 ②在set/a中是按位与。 : ①标签定位符,表示其后的字符串为以标签,可以作为goto命令的作用对象。比如在批处理文件里面定义了一个":begin"标签,用"goto begin"命令就可以转到":begin"标签后面来执行批处理命令了。 ②在%var:string1=string2%中分隔变量名和被替换字串关系。 | ①管道符,就是将上一个命令的输出,作为下一个命令的输入."dir /a/b |more"就可以逐屏的显示dir命令所输出的信息。 ②在set/a中的二元运算符,表示按位或。 ③在帮助文档中表示其前后两个开关、选项或参数是二选一的。 / ①表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数。 ②在set/a中表示除法。 > ①命令重定向符,将其前面的命令的输出结果重新定向到其后面的设备中去,后面的设备中的内容被覆盖。比如可以用"dir > lxmxn.txt"将"dir"命令的结果输出到"lxmxn.txt"这个文本文件中去。 ②在findstr/r中表示匹配单词的右边界,需要配合转义字符\使用。 < ①将其后面的文件的内容作为其前面命令的输入。 ②在findstr/r中表示匹配单词的左边界,需要配合转义字符\使用。 . ①在路径的\后紧跟或者单独出现时:

批处理命令格式

批处理命令格式.txt人永远不知道谁哪次不经意的跟你说了再见之后就真的再也不见了。一分钟有多长?这要看你是蹲在厕所里面,还是等在厕所外面……echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续 rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 例1:用edit编辑a.bat文件,输入下列内容后存盘为c: a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 批处理文件的内容为: 命令注释: @echo off 不显示后续命令行及当前命令行 dir c: *.* >a.txt 将c盘文件列表写入a.txt call c: ucdos ucdos.bat 调用ucdos echo 你好显示"你好" pause 暂停,等待按键继续 rem 准备运行wps 注释:准备运行wps cd ucdos 进入ucdos目录 wps 运行wps 批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”。 %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。例2:C:根目录下有一批处理文件名为f.bat,内容为: @echo off format %1 如果执行C: >f a: 那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a: 例3:C:根目录下一批处理文件名为t.bat,内容为: @echo off type %1 type %2 那么运行C: >t a.txt b.txt %1 : 表示a.txt %2 : 表示b.txt 于是上面的命令将顺序地显示a.txt和b.txt文件的内容。 特殊命令 if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批

AIX的iostat命令解析

AIX的iostat命令解析(翻译红皮书) 网友:seagull.li 发布于:2007.12.10 11:50(共有条评论) 查看评论 | 我要评论 1.确定磁盘使用率 $ iostat -T 2 10 System configuration: lcpu=8 drives=29 paths=52 vdisks=0 tty: tin tout avg-cpu: % user % sys % idle % iowait time 0.0 377.0 77.6 6.1 16.2 0.1 11:35:45 Disks: % tm_act Kbps tps Kb_read Kb_wrtn time hdisk5 78.0 6080.0 439.0 12048 112 11:35:45 hdisk4 79.5 11856.5 453.5 23564 149 11:35:45 hdisk6 19.0 1664.0 13.0 3328 0 11:35:45 $ % tm_act 物理磁盘活动的时间百分比 KBPS 某块磁盘传输数据的总量(读或写) tps 某块物理磁盘每秒钟IO 传输的数量 Kb_read 从磁盘上读取数据的总量 Kb_wrtn 写入磁盘的数据总量 如果%tm_act字段显示磁盘非常忙,并且Kbps 字段显示持续的大量数据传输,应考虑散布数据跨越多个磁盘。该命令支持动态的配置改变。如果发现到配置改变,iostat报告发出一个警告,并刷新最新的系统配置。其中% tm_act是指活动时间,kbps是在统计时间内所有Kb_read与Kb_wrtn之和除以时间的值,即每秒传输的字节数如果% tm_act常过70%却只有很低的Kbps,系统可能是有比较多的LV碎片或文件碎片,当都高时则系统正常。tps表示每秒的IO数,不同的磁盘系统其可承受的IO数不同。如果一块磁盘的活动率超过70%,可以通过转移一部分的磁盘活动压力到另一个磁盘上,或者通过多个磁盘驱动器来扩展I/O压力来获得更高的性能。 $ iostat -D hdisk0 (查看某一磁盘的情况) System configuration: lcpu=8 drives=29 paths=52 vdisks=0 hdisk0 xfer: %tm_act bps tps bread bwrtn 4.6 58.3K 8.8 16.5K 41.9K read: rps avgserv minserv maxserv timeouts fails 3.5 5.8 0.3 67.8 0 0 write: wps avgserv minserv maxserv timeouts fails 5.3 11.2 0.6 114.9 0 0 queue: avgtime mintime maxtime avgwqsz avgsqsz sqfull 136.8 0.0 388.4 0.2 0.0 3.8 --------------------------------------------------------------------------------

Linux命令及TroubleShooting技术总结

一、Linux操作系统安装 二、Linux基本命令 1、修改操作系统的Shell (修改bash,可以tab命令补全,上下翻输入过的命令) #echo $SHELL /usr/bin/sh #vi /etc/passwd root:!:0:0::/home0:/usr/bin/bash

2、查看AIX操作系统位数的方法: #bootinfo -y #bootinfo –K 2、查看操作系统版本 #oslevel –r 3、查看小型机硬件型号 #prtconf |more #lscfg -vp | grep -p alterable (查看硬件卡)4、查看CPU参数 #prtconf #lsdev –Cc processor #vmstat 5、查看内存参数 #prtconf #vmstat 6、查看硬盘参数

#lsdev -Cc disk #prtconf System Model: IBM,9110-51A (机器型号) Machine Serial Number: 0697AC0 (机器序列号) Processor Type: PowerPC_POWER5 (Power Cpu 类型) Number Of Processors: 2 (Cpu 个数) Processor Clock Speed: 2097 MHz CPU Type: 64-bit Kernel Type: 64-bit (Cpu 位数) LPAR Info: 1 06-97AC0 Memory Size: 1904 MB (内存总数) Good Memory Size: 1904 MB Platform Firmware level: Not Available Firmware Version: IBM,SF240_332 Console Login: enable Auto Restart: true Full Core: false Network Information Host Name: aix IP Address: 192.168.1.18 (网卡IP地址) Sub Netmask: 255.255.255.0 Gateway: 192.168.1.1 Name Server: 211.100.30.29 Domain Name: Paging Space Information Total Paging Space: 512MB Percent Used: 42% + hdisk1 U788C.001.AAA8364-P1-T11-L5-L0 16 Bit LVD SCSI Disk Drive (73400 MB) (硬盘信息)+ hdisk0 U788C.001.AAA8364-P1-T11-L8-L0 16 Bit LVD SCSI Disk Drive (73400 MB) (硬盘信息)

DOS批处理命令大全

写批处理 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 ==== willsort 编注======================================= .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 =================================== 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS 提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 ==== willsort 题注=================== 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于wind ows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 ======================== 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 ==== willsort 编注================== 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe 文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 =========================== 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。 ==== willsort 编注===== 纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),https://www.360docs.net/doc/7716767478.html,中的内部命令(根据内存的环境随时进驻内存),以com为扩

目前为止最全的批处理教程

目录 第一章 批处理基础 第一节 常用批处理内部命令简介 1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ftype 12、pushd 和 popd 13、CALL 14、shift 15、IF 16、setlocal 与 变量延迟(ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION 启动或停用延缓环境变量扩展名。) 17、ATTRIB显示或更改文件属性 第二节 常用特殊符号

1、@命令行回显屏蔽符 2、%批处理变量引导符 3、> 重定向符 4、>>重定向符 5、<、>、<& 重定向符 6、|命令管道符 7、^转义字符 8、组合命令 9、& 组合命令 10、||组合命令 11、\"\"字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号 第二章 FOR命令详解 一、基本格式 二、参数 /d仅为目录 三、参数 /R递归(文件名) 四、参数 /L迭代数值范围 五、参数 /F迭代及文件解析 第三章 FOR命令中的变量

一、 ~I- 删除任何引号(\"),扩展 %I 二、 %~fI- 将 %I 扩展到一个完全合格的路径名 三、 %~dI- 仅将 %I 扩展到一个驱动器号 四、 %~pI- 仅将 %I 扩展到一个路径 五、 %~nI- 仅将 %I 扩展到一个文件名 六、 %~xI- 仅将 %I 扩展到一个文件扩展名 七、 %~sI- 扩展的路径只含有短名 八、 %~aI- 将 %I 扩展到文件的文件属性 九、 %~tI- 将 %I 扩展到文件的日期/时间 十、 %~zI- 将 %I 扩展到文件的大小 十一、 %~$PATH:I 第四章 批处理中的变量 一、系统变量 二、自定义变量 第五章 set命令详解 一、用set命令设置自定义变量 二、用set命令进行简单计算 三、用set命令进行字符串处理 1、字符串替换 2、字符串截取 第六章 if命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command

freebsd命令汇总

freebsd命令汇总 查询命令 find / -name adc.rar abc.rar为你要查询的文件名 ---------------------------- find / \! -name “*.c” -print 列出所有不是以.c结尾的文件Print out a list of all the files whose names do not end in .c. find / -newer ttt -user wnj -print 列出所有比文件ttt新并且owner是wnj的文件 find / \! \( -newer ttt -user wnj \) -print 列出所有比文件ttt旧并且owner不是是wnj的文件 find / \( -newer ttt -or -user wnj \) -print 列出所有比文件ttt新或者owner是wnj的文件 find / -newerct …1 minute ago? -print 列出所有一分钟之前改变的文件 find / -type f -exec rm {} \; 删除所有文件,除非你疯了 find -L /usr/bin/ -type l -delete 删除/usr/bin目录下所有连接错误的连接符号

find / -name “[a-z].*” 还有几个参数会经常用到 -amin n 表示最后n分钟访问的文件 -atime n 表示最后n小时访问的文件 -cmin n 表示最后n分钟改变状态的文件 -ctime n 表示最后n小时改变状态的文件 -mmin n 表示最后n分钟里修改过的文件 -mtime n 表示最后24*n小时里修改过的文件 -empty 表示空白的文件,或空白的文件目录,或目录中没有子目录的文件夹 -nouser 属于作废用户的文件 -size +nc 长度大于n字节的文件 几个参数之间可以用-and,-or连接,某个参数取反可用!,可以用括号分隔条件 -exec command; 并执行命令 chown 命令 功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。 语法:chown [选项] 用户或组文件 说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。 ------------------ 例子: chown -R deserts:apache phpMyAdmin-2.8.1-rc1

DOS内部命令和批处理命令列表资料

DOS内部命令和批处理命令列表 Wikipedia,自由的百科全书 MS-DOS 7.1 所有内部命令与批处理命令中文帮助集合 ——本页所有内容均由熊朝伟独自汉化。 命令:CALL 功能:在批处理文件中调用批处理文件. CALL [驱动器:][路径]文件名 [批命令参数] 批命令参数指定批处理文件所需的命令行参数. 命令:CD/CHDIR 功能:显示或改变当前目录. CHDIR [驱动器:][路径] CHDIR[..] CD [驱动器:][路径] CD[..] .. 表示当前目录改变成父目录. 键入 CD [驱动器:], 可显示指定驱动器的当前目录. 键入不带参数的 CD 可显示当前驱动器和当前目录. 命令:CLS 功能:清除屏幕。 CLS 命令:COPY 功能:文件拷贝. COPY [/A | /B] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination

[/A | /B]] [/V] [/Y | /-Y] source 指定被拷贝的文件. /A 表示 ASCII 正文文件. /B 表示二进制文件. destination 指定新文件的目录和文件名. /V 校验新文件是否正确. /Y 在重写原有的目标文件之前, 不让你确认. /-Y 在重写原有的目标文件之前, 让你确认. 开关项 /Y 可由环境变量 COPYCMD 预设. -Y 可以更改预设值.要合并多个文件时, 可指定单个目标文件, 但指定多个 源文件(使用通配符或文件1+文件2+文件3 格式). 命令:DATE 功能:显示或设置日期。 DATE [日期] 显示当前日期设置和输入新日期的提示,请键入 不带参数的 DATE。要保留现有日期,请按 ENTER。 命令:DEL/ERASE 功能:删除文件. DEL [驱动器:][路径]文件名 [/P] ERASE [驱动器:][路径]文件名 [/P] [驱动器:][路径]文件名指定被删除的文件, 用通配符指定多个文件. /P 删除每个文件之前显示确认信息. 命令:DIR 功能:显示目录中的文件和子目录列表。

相关文档
最新文档