当前位置:文档之家› 批处理入门教程

批处理入门教程

批处理入门教程
批处理入门教程

批处理教程

第一节常用批处理内部命令简介

批处理本质:是一堆DOS 命令按一定顺序排列而形成的集合。批处理的作用就是自动的连续执行多条命令,批处理,也称为批处理脚本,英文译为BATCH 。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。一个良好的习惯是在硬盘上建立一个bat 或者batch 目录(例如C:\BATCH ),然后将所有你编写的批处理文件放到该目录中。

首先,批处理文件是一个文本文件,文件的每一行都是一条DOS 命令。

其次,批处理文件是一种简单的程序,通过(if)和制语句(goto)来控制命令运行的流程。第三,编写好的批处理文件都相当于一个DOS 的外部命令,可以在任何位置调用运行。第四,在DOS 和Win9x/Me 系统下,C:\AUTOEXEC.BAT 是启动计算机自动运行的。

介绍命令

1、REM 和::REM 为注释命令,可以回显,::不回显,简洁有效亦可加快运行速度。第一、任何以冒号开头的字符行,在批处理中都被视作标号,而直接忽略其后的所有内容。有效标号:冒号后紧跟一个以字母数字开头的字符串,goto 语句可以识别。

无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto 无法识别的标号,可以起到注释作用,所以”::”常被用作注释符号,其实:+也可起注释作用。

第二、rem 在某些场合下将比::更为适用;另外,rem 可以用于config.sys 文件中。

2、ECHO 和@

@Echo off

Echo hello

Pause

运行显示:hello

3、PAUSE Echo 其他提示语&pause >nul (Echo 其他提示语&pause >>nul 效果一样)或者写成以下形式其功能也一样(两行):

Echo 其他提示语

pause >(>>)nul

4、errorlevel

程序返回码echo %errorlevel%命令行格式查看返回码判断命令是否成,成功返回“0”

5、title 设置cmd 窗口的标题:title 新标题

6、COLOR 设置默认的控制台前景和背景颜色。

COLOR [attr]第一个为背景,第二个则为前景。

7、mode 配置系统设备help mode >a.txt

8、GOTO 和:

if {%1}=={}goto noparms ;if "%2"==""goto noparms

@echo off

:start

set /a var+=1

echo %var%

if %var%leq 3GOTO start

pause

9、find 在文件中搜索字符串。如果没有指定路径FIND 将搜索键入的或者由另一命令产生

运行显示:1234

的文字。Find 常和type 命令结合使用

Type [drive:][path]filename |find "string"[>tmpfile]#挑选包含string 的行

Type [drive:][path]filename |find /v "string"#剔除文件中包含string 的行

Type [drive:][path]filename |find /c #显示文件行数10、start 命令:批处理中调用外部程序的命令;如果直接运行外部程序则必须等外部程序完成后才继续执行剩下的指令start explorer d:\调用图形界面打开D 盘(cd d:\)

11、assoc 和ftype 文件关联

assoc 设置'文件扩展名'关联,关联到'文件类型'ftype 设置'文件类型'关联,关联到'执行程序和参数'当你双击一个.txt 文件时,windows 并不是根据.txt 直接判断用notepad.exe 打开而是先判断.txt 属于txtfile '文件类型'再调用txtfile 关联的命令行txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1可以在"文件夹选项"→"文件类型"里修改这2种关联

assoc 显示所有'文件扩展名'关联;assoc .txt [#]显示.txt 代表的'文件类型。

ftype 显示所有'文件类型'关联;ftype exefile [#]显示exefile 类型关联的命令行

assoc .txt=Word.Document.8可以看到.txt 文件的图标都变了

assoc .txt=txtfile 恢复.txt 的正确关联;ftype exefile="%1"%*恢复exefile 的正确关联如果该关联已经被破坏,可以运行https://www.doczj.com/doc/b615384396.html, ,再输入这条命令

12、pushd 和popd 切换当前目录

@echo off

c:&cd\&md mp3::在C:\建立mp3文件夹

md d:\mp4::在D:\建立mp4文件夹

cd d d:\mp4::更改当前目录为d:\mp4

pushd c:\mp3::保存当前目录,并切换当前目录为c:\mp3

popd ::恢复当前目录为刚才保存的d:\mp4

pause13、CALL

CALL [drive:][path]filename [batch-parameters]调用的其它批处理程序。filename 参数必须具有.bat 或.cmd 扩展名。CALL :label arguments 调用本文件内命令段,相当于子程序。被调用的命令段以标签:label 开头以命令goto :eof 结尾。

批脚本里的%*指出所有的参数(如%1%2%3%4%5...)

参数扩充时不理会参数所代表的文件是否真实存在,均以当前目录进行扩展

@echo off

Echo 产生一个临时文件>tmp.txt

Rem 下行先保存当前目录,再将c:\windows 设为当前目录

pushd c:\windows

Call :sub tmp.txt

Rem 下行恢复前次的当前目录

例1:

@echo off

echo 111>test.txt

echo 222>>test.txt

find “111”test.txt

del test.txt

pause 例2:@echo off echo 111>test.txt echo 222>>test.txt type test.txt|find "111"del test.txt pause

运行结果如下:----------TEST.TXT 111请按任意键继运行显示如下:111请按任意键继续...

Popd

Call:sub tmp.txt

pause

Del tmp.txt

:sub

Echo删除引号:%~1

Echo扩充到路径:%~f1

Echo扩充到一个驱动器号:%~d1

Echo扩充到一个路径:%~p1

Echo扩充到一个文件名:%~n1

Echo扩充到一个文件扩展名:%~x1

Echo扩充的路径指含有短名:%~s1

Echo扩充到文件属性:%~a1

Echo扩充到文件的日期/时间:%~t1

Echo扩充到文件的大小:%~z1

Echo扩展到驱动器号和路径:%~dp1

Echo扩展到文件名和扩展名:%~nx1

Echo扩展到类似DIR的输出行:%~ftza1

Echo.

Goto:eof

14、shift更改批处理文件中可替换参数的位置。

SHIFT[/n]:命令从第n个参数开始移位;n介于零和八之间。例如:

SHIFT/2会将%3移位到%2,将%4移位到%3,等等;并且不影响%0和%1。15、IF

(1)IF[NOT]ERRORLEVEL number command

IF ERRORLEVEL执行命令后由IF ERRORLEVEL来判断命令的返回值。Number的数字范围0~255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立。例:

@echo off

dir c:

rem退出代码为>=1就跳至标题1处执行,>=0就跳至标题0处执行

IF ERRORLEVEL1goto1

IF ERRORLEVEL0goto0

Rem上面的两行不可交换位置,否则失败了也显示成功。

:0

echo命令执行成功!

Rem程序执行完毕跳至标题exit处退出

goto exit

:1

echo命令执行失败!

Rem程序执行完毕跳至标题exit处退出

goto exit

:exit

pause

(2)IF [NOT]string1==string2command

string1和string2都为字符的数据。(绝对相等的意思)条件相等后即执行后面的command 检测当前变量的值做出判断,为防止字符串中有空格,可用以下格式

if [NOT]{string1}=={string2}command ;

if [NOT][string1]==[string2]command if [NOT]“string1”==“string2”command 这种写法实际上将括号或引号当成字符串的一部分了

(3)IF [NOT]EXIST filename command

EXIST filename 为文件或目录存在的意思

echo off

IF EXIST autoexec.bat echo 文件存在!

IF not EXIST autoexec.bat echo 文件不存在!

16、setlocal 与变量延迟setlocal enabledelayedexpansion

例1:@echo off set a=4set a=5&echo %a%pause 结果:4第二节常用特殊符号

管道命令(优先级)>重定向命令>组合命令

1、@命令行回显屏蔽符;

2、%批处理变量引导符;

3、>重定向符;

4、>>重定向符;

5、<、>&、<&重定向符;

6、|命令管道符;

7、^转义字符;

8、&组合命令;

9、&&组合命令;10、||组合命令;11、""字符串界定符;12、,逗号;13、;分号;14、()括号;15、!感叹号(变量延迟的启动语句是“setlocal enabledelayedexpansion ”)

16、批处理中可能会见到的其它特殊标记符:CR(0D)命令行结束符;Escape(1B)ANSI 转义字符引导符;Space(20)常用的参数界定符Tab(09);=不常用的参数界定符;+COPY 命令文件连接符;*?文件通配符;/参数开关引导符;批处理标签引导符。

1、@命令行回显屏蔽符

2、%批处理变量引导符:它只是批处理中的参数而已,引用变量用%var%,调用程序外部参数用%1至%9等等,%0%1%2%3%4%5%6%7%8%9%*为命令行传递给批处理的参数%0批处理文件本身,包括完整的路径和扩展名;%1第一个参数;%9第九个参数;%*从第一个参数开始的所有参数;参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。

例:最简单的复制文件自身的方法copy %0d:\wind.bat

3、>重定向符

4、>>重定向符

5、<、>&、<&重定向符”<”输入重定向命令从文件中读取命令输入,而不是从键盘中读入。@echo off

echo 2005-05-01>temp.txt date

del temp.txt

例3:

@echo off

setlocal enabledelayedexpansion for /l %%i in (1,1,5)do (

set a=%%i

echo !a!)

pause

例2:@echo off setlocal enabledelayedexpansion rem 固定格式set a=4set a=5&echo !a!

pause 结果:5结果:12345这样就可以不等待输入直接修改当前日期

>&将一个句柄的输出写入到另一个句柄的输入中;<&从一个句柄读取输入并将其写入到另一个句柄输出中。常用句柄:0、1、2,未定义句柄:3—9

1>nul 表示禁止输出正确的信息;2>nul 表示禁止输出错误信息。

其中的1与2都是代表某个数据流输入输出的地址(NT CMD 称之为句柄,MSDOS 称之为设备)。

句柄0:标准输入stdin ,键盘输入;句柄1:标准输出stdout ,输出到命令提示符窗口(console ,代码为CON );句柄2:标准错误stderr ,输出到命令提示符窗口(console ,代码为CON )其中的stdin 可被<重定向,stdout 可被>、>>重定向,而stderr 在DOS 下不可直接重定向,只有通过ctty 或其它命令将系统控制权转交给其它设备的方式,来间接完成。

6、|命令管道符格式:第一条命令|第二条命令[|第三条命令...]

将第一条命令的结果作为第二条命令的参数来使用,

例如:dir c:\|find "txt"::查找C :\所有,并发现TXT 字符串。

不使用format 的参数时,我是这样来自动格式化A 盘的echo y|format a:/s /q /v:system

7、^转义字符

^是对特殊符号<,>,&的前导字符,在命令中他将以上3个符号的特殊功能去掉,仅仅只把他们当成符号而不使用他们的特殊意义。

echo test ^>1.txt 结果则是:test >1.txt

例:

@echo off

echo 英雄^

是^

好^

男人

pause

8、&组合命令

比如:dir z:\&dir y:\&dir c:\::以上命令会连续显示z,y,c 盘的内容,不理会该盘是否存在

9、&&组合命令dir z:\&&dir y:\&&dir c:\

10、||组合命令把C 盘和D 盘的文件和文件夹列出到a.txt 文件中。

例:dir c:\&&dir d:\>a.txt 这样执行后a.txt 里只有D 盘的信息!

必须得这么写:dir c:\>a.txt &&dir d:\>>a.txt

11、""字符串界定符双引号允许在字符串中包含空格,进入一个特殊目录可以用如下方法cd "program files";cd progra~1;cd pro*以上三种方法都可以进入program files 这个目录

12、,逗号逗号相当于空格比如:dir,c:\

13、;分号当命令相同时,可以将不同目标用来隔离,如果目标路径不存在,则终止执行;如果路径存在,文件不存在,则继续执行。

比如:dir c:\;d:\;e:\;z:\以上命令相当于dir c:\dir d:\dir e:\

dir z:\

例:dir c:\;d:\;e:\1.txt 命令相当于

dir c:\dir d:\dir e:\1.txt

结果是:英雄是好男人如果其中z 盘不存在,运行显示:

系统找不到指定的路径。然后终止命令的执行。

其中文件e:\1.txt 不存在,但e 盘存在,有错误提示,但命令仍会执行。

14、()括号这些命令将被看成一个整体,视为一条命令行。

例:命令:echo 1&echo 2&echo 3

可以写成:

(

echo 1

echo 2

echo 3

)注意:这种多条命令被视为一条命令行时,如果其中有变量,就涉及到变量延迟的问题。

15、!感叹号

FOR 专题讲座

FOR 参数%%变量名IN (相关文件或命令)DO 执行的命令参数:FOR 有4个参数/d /l /r /f 他们的作用我在下面用例子解释%%变量名:这个变量名他们区分大小写。FOR %%variable IN (set)DO command [command-parameters]

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

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

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

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

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

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

@echo off

for /d %%i in (c:\*)do echo %%i

pause

运行会把C 盘根目录下的全部目录名字打印出来,而文件名字一个也不显示!

在来一个,比如我们要把当前路径下文件夹的名字只有1-3个字母的打出来

@echo off

for /d %%i in (???)do echo %%i

pause

这样的话如果你当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了@echo off

for /d %%i in (window?)do echo %%i

pause

保存到C 盘下执行.显示:windows

二、参数/R

FOR /R [[drive:]path]%variable IN (set)DO command [command-parameters]

检查以[drive:]path 为根的目录树,指向每个目录中的

FOR 语句。如果在/R 后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。例1:@echo off for /r c:\%%i in (*.exe)do echo %%i pause 以当前目录为搜索路径:目录和他下面的子目录的全部EXE 文件列出来!!!

例2:

@echo off

for /r %%i in (*.exe)do @echo

%%i

pause

例3:

@echo off

for /r c:\%%i in (boot.ini)do echo %%i

pause

运行本例发现枚举了c 盘所有目录,为了只列举boot.ini 存在的目录,可改成下面这样:@echo off

for /r c:\%%i in (boot.ini)do if exist %%i echo %%i pause 三、参数/L

FOR /L %variable IN (start,step,end)DO command [command-parameters]

该集表示以增量形式从开始到结束的一个数字序列。

@echo off

for /l %%i in (1,1,5)do @echo %%i

pause

保存执行看效果,他会打印从12345这样5个数字

@echo off

for /l %%i in (1,1,5)do start cmd

pause

当然我们也可以把那个start cmd 改成md %%i 这样就会建立指定个目录了!!!名字为1-65535

四、参数/F \迭代及文件解析在没有使用令牌选项时,/F 将只检查第一个令牌。默认情况下,/F 传递每个文件每一行的第一个空白分隔符号。跳过空行"options"包括一个或多个FOR /F ["options"]%variable IN (file-set)DO command [command-parameters]

FOR /F ["options"]%variable IN ("string")DO command [command-parameters]

FOR /F ["options"]%variable IN ('command')DO command [command-parameters]

例1:

@echo off

rem 首先建立临时文件test.txt

echo ;注释行,这是临时文件,用完删除>test.txt

echo 11段12段13段14段15段16段>>test.txt

echo 21段,22段,23段,24段,25段,26段>>test.txt

echo 31段-32段-33段-34段-35段-36段>>test.txt

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

Pause

Del test.txt

运行显示结果:

11段13段14段15段16段

21段23段24段,25段,26段

31段33段34段-35段-36段

请按任意键继续...

eol=;分号开头的行为注释行

tokens=1,3*将每行第1段,第3段和剩余字段分别赋予变量%%i ,%%j ,%%k

delims=,-(减号后有一空格)以逗号减号和空格为分隔符,空格必须放在最后For 命令例2:****************************************

@echo off

用这条命令搜索文件真不错。。。。。。

FOR/F"eol=delims="%%i in(test.txt)do echo%%i

Pause

运行将显示test.txt全部内容,包括注释行。

For命令例3:****************************************

另外/F参数还可以以输出命令的结果看这个例子

@echo off

FOR/F"delims="%%i in('net user')do@echo%%i

pause

这样你本机全部帐号名字就出来了把扩号内的内容用两个单引号引起来就表示那个当命令执行,FOR会返回命令的每行结果,加那个"delims="是为了让空格的行能整行显示出来,不加就是只显示空格左边一列!比如:FOR/F%%z IN('set')DO@echo%%z

这里我们代入的变量名是z那么我们就要把那个I改成z,例如%~fI改为%~fz

一、~I删除任何引号("),扩展%I

首先建立临时文件temp.txt,内容如下

"1111

"2222"

3333"

"4444"44

"55"55"55

可建立个BAT文件代码如下:

@echo off

echo^"1111>temp.txt

echo"2222">>temp.txt

echo3333^">>temp.txt

echo"4444"44>>temp.txt

echo^"55"55"55>>temp.txt

rem上面建立临时文件,注意不成对的引号要加转义字符^,重定向符号前不要留空格FOR/F"delims="%%i IN(temp.txt)DO echo%%~i

pause

del temp.txt

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

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

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

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

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

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

请按任意键继续....

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

无头不删,有头连尾删,无尾则删首。

1、若字符串首尾同时存在引号,则删除首尾的引号;

2、若字符串尾不存在引号,则删除字符串首的引号;

3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。二、%~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变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单单打印一个文件名

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

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

pause

执行后我CMD里显示如下

C:

C:

如果变量%%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扩展到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串把这些

代码保存为批处理,放在桌面。

在PATH指的路径里搜索notepad.exe文件。

@echo off

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

pause

一、系统变量

%ALLUSERSPROFILE%本地返回“所有用户”配置文件的位置。

%APPDATA%本地返回默认情况下应用程序存储数据的位置。

%CD%本地返回当前目录字符串。

%CMDCMDLINE%本地返回用来启动当前的Cmd.exe的准确命令行。

%CMDEXTVERSION%系统返回当前的“命令处理程序扩展”的版本号。

%COMPUTERNAME%系统返回计算机的名称。

%COMSPEC%系统返回命令行解释器可执行程序的准确路径。

%DATE%系统返回当前日期。使用与date/t命令相同的格式由Cmd.exe生成。

%ERRORLEVEL%系统返回上一条命令的错误代码。通常用非零值表示错误。

%HOMEDRIVE%系统返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%HOMEPATH%系统返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%HOMESHARE%系统返回用户的共享主目录的网络路径基主目录值而设置用户主目录是在“本地用户和组”中指定的。

%LOGONSERVER%本地返回验证当前登录会话的域控制器的名称。

%NUMBER_OF_PROCESSORS%系统指定安装在计算机上的处理器的数目。

%OS%系统返回操作系统名称。Windows2000显示其操作系统为Windows_NT。

%PATH%系统指定可执行文件的搜索路径。

%PATHEXT%系统返回操作系统认为可执行的文件扩展名的列表。

%PROCESSOR_ARCHITECTURE%系统返回处理器的芯片体系结构。值:x86或IA64基于Itanium

%PROCESSOR_IDENTFIER%系统返回处理器说明。

%PROCESSOR_LEVEL%系统返回计算机上安装的处理器的型号。

%PROCESSOR_REVISION%系统返回处理器的版本号。

%PROMPT%本地返回当前解释程序的命令提示符设置。由Cmd.exe生成。

%RANDOM%系统返回0到32767之间的任意十进制数字。由Cmd.exe生成。

%SYSTEMDRIVE%系统返回包含Windows server operating system根目录(即系统根目录)的驱动器。

%SYSTEMROOT%系统返回Windows server operating system根目录的位置。

%TEMP%和%TMP%系统和用户返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要TEMP,而其他应用程序则需要TMP。

%TIME%系统返回当前时间。使用与time/t命令相同的格式。由Cmd.exe生成。有关time命令的详细信息,请参阅Time。

%USERDOMAIN%本地返回包含用户帐户的域的名称。

%USERNAME%本地返回当前登录的用户的名称。

%USERPROFILE%本地返回当前用户的配置文件的位置。

%WINDIR%系统返回操作系统目录的位置。

这么多系统变量,我们如何知道他的值是什么呢?

在CMD里输入echo%WINDIR%

这样就能显示一个变量的值了!

举个实际例子,比如我们要复制文件到当前帐号的启动目录里就可以这样

copy d:\1.bat"%USERPROFILE%\「开始」菜单\程序\启动\"

%USERNAME%本地返回当前登录的用户的名称。注意有空格的目录要用引号引起来另外还有一些系统变量,他们是代表一个意思,或者一个操作!https://www.doczj.com/doc/b615384396.html,

他们分别是%0%1%2%3%4%5......一直到%9还有一个%*

%0这个有点特殊,有几层意思,先讲%1-%9的意思.

%1返回批处理的第一个参数

%2返回批处理的第二个参数

%3-%9依此推类

我们看这个例子,把下面的代码保存为test.BAT然后放到C盘下

@echo off

echo%1%2%3%4

echo%1

echo%2

echo%3

echo%4

进入CMD,输入cd c:\

然后输入test.bat我是第一个参数我是第二个参数我是第三个参数我是第四个参数注意中间的空格,我们会看到这样的结果:

我是第一个参数我是第二个参数我是第三个参数我是第四个参数

我是第一个参数

我是第二个参数

我是第三个参数

我是第四个参数

对比下代码,%1就是”我是第一个参数”%2就是”我是第二个参数”这些%1和%9可以让批处理也能带参数运行,大大提高批处理功能!

例:

@echo off

echo%*

同样保存为test.bat放到C盘

进入CMD,输入cd c:\

然后输入test.bat我是第一个参数我是第二个参数我是第三个参数我是第四个参数可以看到他一次把全部参数都显示出来了

%0这个不是返回参数的值了,他有两层意思!

第一层意思:返回批处理所在绝对路径

@echo off

echo%0

pause

保存为test.BAT放在桌面运行,会显示如下结果"C:\Documents and Settings\Administrator\桌面\test.bat"他把当前批处理执行的所在路经打印出来了,返回批处理所在绝对路径的意思。

第二层意思:无限循环执行BAT

例子:

@echo off

net user

%0

二、自定义变量

1、用set命令设置自定义变量

显示、设置或删除cmd.exe环境变量。

SET[variable=[string]]variable指定环境变量名;string指定要指派给变量的一系列字符串。要显示当前环境变量,键入不带参数的SETSET;命令不允许变量名含有等号。

例子:

@echo off

set var=我是值

echo%var%

pause

请看set var=我是值,这就是BAT直接在批处理中设置变量的方法!

在批处理中我们要引用这个变就把var变量名用两个%(百分号)扩起来,如%var%

现在我就来说说SET的这种语法,只需要加一个"/P"参数就可以了。

SET/P variable=[promptString]

@echo off

set/p var=请输入变量的值:

echo您输入了%var%~_~

pause

set/p是命令语法var是变量名=号右边的"请输入变量的值:"

运行后,我们在提示语后面直接输入1,就会显示一行您输入了1~_~

2、用set命令进行简单计算

语法:SET/A expression/A命令行开关指定等号右边的字符串为被评估的数字表达式。注意:DOS计算只能精确到整数

例:

@echo off

set/p input=请输入计算表达式:

set/a var=%input%

echo计算结果:%input%=%var%

pause

请输入计算表达式:1+9+20+30-10

计算结果:1+9+20+30-10=50

上面的计算过程显示,DOS计算只能精确到32位,这个32位是指二进制32位,其中最高位为符号位(0为正,1为负),低位31位为数值。31个1换成十进制为2147483647,所以DOS计算的有效值范围是-2147483647至2147483647,超出该数值范围时计算出错。

运行set/a a=1+1,b=2+1,c=3+1后会显示一个4

有时候我们需要直接在原变量进行加减操作就可以用这种语法

set/a var+=1这样的语法对应原始语法就是set/a var=%var%+1

set/a var*=2

对于"逻辑或取余操作符",我们需要把他们用双引号引起来,也可以用转义字符^

set/a var=1"&"1这样结果就显示出来了,其他逻辑或取余操作符用法

set/a var=1"+"1异运算

set/a var=1"%"1取模运算

set/a var=3"<<"2左移位运算,3的二进制为11,左移2位为1100。

set/a var=4">>"2右移位运算,4的二进制为100,右移动2位为1,结果为1

这些符号也可以用&=^=|=<<=>>=这样的简单用法如

set/a var"&="1等于set/a var=%var%"&"1注意引号

思考题:求2的n次方

@echo off

set/p n=请输入2的几次方:

set/a num=1^<^

pause

3、用set命令进行字符串处理

(1)、字符串替换

现在说%PATH:str1=str2%

上面语法的意思就是:将字符串变量%PATH%中的str1替换为str2且是替换变量值的内容@echo off

set a=https://www.doczj.com/doc/b615384396.html,

echo替换前的值:"%a%"

set var=%a:=%

echo替换后的值:"%var%"

pause

替换前的值:"https://www.doczj.com/doc/b615384396.html,"

替换后的值:"https://www.doczj.com/doc/b615384396.html,"

把上面的例子改成这样

@echo off

set a=https://www.doczj.com/doc/b615384396.html,

echo替换前的值:"%a%"

set var=%a:=伤脑筋%

echo替换后的值:"%var%"

pause

运行显示:

替换前的值:"https://www.doczj.com/doc/b615384396.html,"

替换后的值:"bbs伤脑筋verybat伤脑筋cn"

(2)、字符串截取语法格式为:%a:~[m[,n]]%

方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0),n为截取长度(缺省为全部)能例1:

@echo off

set a=https://www.doczj.com/doc/b615384396.html,

set var=%a:~1,2%

echo%var%

pause

其他两种语法

%PATH:~-10%

%PATH:~0,-2%

例2:@echo off set a=https://www.doczj.com/doc/b615384396.html, set var=%a:~-3%echo %var%pause 运行结果:.cn 例3:@echo off set a=https://www.doczj.com/doc/b615384396.html, set var=%a:~3%echo %var%pause 运行显示:https://www.doczj.com/doc/b615384396.html, 这个就是把变量a 的从第3位开始后面全部的值给变量VAR %PATH:~0,-2%例子例4:@echo off set a=https://www.doczj.com/doc/b615384396.html,

set var=%a:~0,-3%

echo %var%

pause

执行批处理程序中的条件处理。

IF [NOT]ERRORLEVEL number command

IF [NOT]string1==string2command

IF [NOT]EXIST filename command

NOT 指定只有条件为false 的情况下,Windows XP 才应该执行该命令。ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为true 。

string1==string2如果指定的文字字符串匹配,指定条件为true 。

EXIST filename 如果指定的文件名存在,指定条件为true 。

command 如果符合条件,指定要执行的命令。如果指定的条件为FALSE ,命令后可跟一个执行ELSE 关键字后的命令的ELSE 命令。

ELSE 子句必须在IF 之后出现在同一行上。例如:

IF EXIST filename (

del filename

)ELSE (

echo filename missing

)

第一种用法:IF [NOT]ERRORLEVEL number command 判断上一条命令执行结果的代码,以决定下一个步骤。一般上一条命令的执行结果代码只有两结果,"成功"用0表示

举个例子:

@echo off

例5:@echo off set a=https://www.doczj.com/doc/b615384396.html, set var=%a:~2,-3%echo %var%pause 运行显示:s.verybat 输入任意字符串,求字符串的长度@echo off set /p str=请输入任意长度的字符串:echo 你输入了字符串:"%str%"if not defined str (pause &goto :eof)set num=0:len set /a num+=1set str=%str:~0,-1%if defined str goto len echo 字符串长度为:%num%pause

IF%ERRORLEVEL%==0echo net user执行成功了!

pause

这是个简单判断上条命令是否执行成功https://www.doczj.com/doc/b615384396.html,

这只是一般的情况,实际上,errorlevel返回值可以在0~255之间。比如,xcopy默认的errorlevel值就有5个,分别表示5种执行状态:

0文件复制没有错误。

1、if errorlevel2echo;

2、用户按CTRL+C终止了xcopy;

3、出现了初始化错误。没有足够的内存或磁盘空间或命令行上输入了无效的驱动器名称或语法;

4、出现了磁盘写入错误。if errorlevel5echo出现了磁盘写入错误

if errorlevel4echo出现了初始化错误

if errorlevel2echo用户按CTRL+C终止了xcopy

if errorlevel1echo if errorlevel2echo

if errorlevel0echo文件复制没有错误。

例1

@echo off

net usertest

IF%ERRORLEVEL%==1echo net user执行失败了!

pause

例2

@echo off

set/p var=随便输入个命令:

%var%

if%ERRORLEVEL%==0goto yes

goto no

:yes

echo!var!执行成功了

pause

exit

:no

echo基本上执行失败了..

pause

在来一个简化版的

@echo off

set/p var=随便输入个命令:

%var%

if%ERRORLEVEL%==0(echo%var%执行成功了)ELSE echo%var%执行失败了!

pause

当然我门还可以把if else这样的语句分成几行写出来,使他看上去好看点...

@echo off

set/p var=随便输入个命令:

%var%

if%ERRORLEVEL%==0(

echo!var!执行成功了

echo基本上执行失败了..

)

pause

第二种用法:IF[NOT]string1==string2command

例子

@echo off

set/p var=请输入第一个比较字符:

set/p var2=请输入第二个比较字符:

if%var%==%var2%(echo我们相等)ELSE echo我们不相等

pause

下面的例子打上了括号是为了区别是否有空格。

@echo off

set/p var=请输入第一个比较字符:

set/p var2=请输入第二个比较字符(多输入个空格试试):

if"%var%"=="%var2%"(echo我们相等)ELSE echo我们不相等

pause

第三种用法:IF[NOT]EXIST filename command

例子

@echo off

if exist"c:\test"(echo存在文件)ELSE echo不存在文件

pause

第四种用法:IF增强的用法

IF[/i]string1compare-op string2command/i的意思是不比较时不区分大小写。

IF CMDEXTVERSION number command

IF DEFINED variable command

CMDEXTVERSION条件的作用跟ERRORLEVEL的一样,除了它是在跟与命令扩展名有关联的内部版本号比较。第一个版本是1。每次对命令扩展名有相当大的增强时,版本号会增加一个。命令扩展名被停用时CMDEXTVERSION条件不是真的。如果已定义环境变量,DEFINED条件的作用跟EXISTS的一样,除了它取得一个环境变量,返回的结果是true。@echo off

if a==A(echo我们相等)ELSE echo我们不相等

pause

执行后会显示:我们不相等

@echo off

if/i a==A(echo我们相等)ELSE echo我们不相等

pause

我们相等

EQU-等于;NEQ-不等于;LSS-小于;LEQ-小于或等于;GTR-大于;GEQ-大于或等于@echo off

set/p var=请输入一个数字:

if%var%LEQ4(echo我小于等于4)ELSE echo我不小于等于4

pause

三、交互界面设计

@echo off&title DOS资源站https://www.doczj.com/doc/b615384396.html,

cls

title终极多功能修复

:menu

cls

color0A

echo.

echo==============================

echo请选择要进行的操作,然后按回车

echo==============================

echo.

echo 1.网络修复及上网相关设置,修复IE,自定义屏蔽网站echo.

echo 2.病毒专杀工具,端口关闭工具,关闭自动播放echo.

echo 3.清除所有多余的自启动项目,修复系统错误echo.

echo 4.清理系统垃圾,提高启动速度

echo.

echo Q.退出

echo.

echo.

:cho

set choice=

set/p choice=请选择:

IF NOT"%choice%"==""SET choice=%choice:~0,1%

if/i"%choice%"=="1"goto ip

if/i"%choice%"=="2"goto setsave

if/i"%choice%"=="3"goto kaiji

if/i"%choice%"=="4"goto clean

if/i"%choice%"=="Q"goto endd

echo选择无效,请重新输入

echo.

goto cho

二、if…else…条件语句

IF[NOT]ERRORLEVEL number command

IF[NOT]string1==string2command

IF[NOT]EXIST filename command

增强用法:IF[/i]string1compare-op string2command

例:

IF EXIST filename(

del filename

)ELSE(

echo filename missing

)也可写成:if exist filename(del filename)else(echo filename missing)

但这种写法不适合命令太多或嵌套命令的使用。

三、循环语句

1、指定次数循环

FOR/L%variable IN(start,step,end)DO command[command-parameters]

组合命令:

FOR/L%variable IN(start,step,end)DO(

Command1

Command2

……

)

2、对某集合执行循环语句。

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

FOR/R[[drive:]path]%variable IN(set)DO command[command-parameters]

检查以[drive:]path为根的目录树,指向每个目录中的FOR语句。如果在/R后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。

同前面一样,command可以用括号来组合:

FOR/R[[drive:]path]%variable IN(set)DO(

Command1

Command2

……

commandn

)

3、条件循环利用goto语句和条件判断,dos可以实现条件循环

@echo off

set var=0

rem************循环开始了

:continue

set/a var+=1

echo第%var%此循环

if%var%lss100goto continue

rem************循环结束了

echo循环执行完毕

pause

四、子程序

在批处理程序中可以调用外部可运行程序,比如exe程序,也可调用其他批处理程序,这些也可以看作子程序,但是不够方便,如果被调用的程序很多,就显得不够简明了,很繁琐,在windowsXP中,批处理可以调用本程序中的一个程序段,相当于子程序,这些子程序一般放在主程序后面。

子程序调用格式:

CALL:label arguments

子程序语法:

:label

command1

command2

...

commandn

goto:eof

传至子程序的参数在call语句中指定,在子程序中用%1、%2至%9的形式调用,而子程序返回主程序的数据只需在调用结束后直接引用就可以了,当然也可以指定返回变量。

例1:

@echo off

call:sub return你好

echo子程序返回值:%return%

pause

:sub

set%1=%2

goto:eof

运行结果:你好

子程序例2:设计一个求多个整数相加的子程序

@echo off

set sum=0

call:sub sum102035

echo数据求和结果:%sum%

pause

:sub

rem参数1为返回变量名称

set/a%1=%1+%2

shift/2

if not"%2"==""goto sub

goto:eof

运行结果:65

五、用ftp命令实现自动下载ftp是常用的下载工具,ftp界面中有40多个常用命令。

六、用7-ZIP实现命令行压缩和解压功能详细情况见7-zip帮助文件

七、调用VBScript程序用法:CScript脚本名称[脚本选项...][脚本参数...]

八、将批处理转化为可执行文件:由于批处理文件是一种文本文件,任何人都可以对其进行随便编辑,所以如果将其转换成.com格式的可执行文件,不仅执行效率会大大提高,而且不会破坏原来的功能,更能将优先级提到最高。Bat2Com就可以完成这个转换工作。

小知识:在DOS环境下,可执行文件的优先级由高到低依次为.com>.exe>.bat>.cmd。

九、时间延迟:执行一条命令后延迟一段时间再进行下一条命令。

1、利用ping命令延时

@echo off

echo延时前!

ping/n3127.0.0.1>nul

echo延时后!

pause

解说:用到了ping命令的“/n”参数,表示要发送多少次请求到指定的ip。本例中要发送3

次请求到本机的ip,(127.0.0.1)。127.0.0.1可简写为127.1。

2、利用for命令延时

@echo off

echo延时前!

for/l%%i in(1,1,5000)do echo%%i>nul

echo延时后!

pause

十、模拟进度条

@echo off

mode con cols=113lines=15&color9f

cls

echo.

echo程序正在初始化...

echo.

echo┌──────────────────────────────────────┐

set/p=■

for/L%%i in(1138)do set/p a=■nul

echo100%%

echo└──────────────────────────────────────┘

pause

解说:“set/p=■nul”是输出每个“■”的时间间隔,即每隔多少时间输出一个“■”。

批处理命令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编辑]

十分经典的excel批处理教程

十分经典的批处理教程 这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。. 先概述一下批处理是个什么东东。批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个"比较合适的",而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。或许你会因为这篇文章而"无条件爱上批处理",那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的! 按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 OK,never claver and get to business(闲话少说言归正传)。批处理,也称为批处理脚本,英文译为BA TCH,批处理文件后缀BA T就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。再说句"闲话":要学好批处理,DOS基础一定要牢!当然脑子灵活也是很重要的一方面。 例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似): ping https://www.doczj.com/doc/b615384396.html, > a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt exit 是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离"从服务器中转"那一痛苦的过程。这里>的意思,是把前面命令得到的东西放到后面所给的地方,>>的作用,和>的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt文件越来越大(想到如何搞破坏了??)。By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。 例二、再给出一个已经过时的例子(a.bat):

初学者入门--批处理教程

初学者入门--批处理 教程 -CAL-FENGHAI.-(YICAI)-Company One1

最近好多猜测弱口令的病毒在网上流行,比如前段时间闹得很厉害的蠕虫就是一个典型。这些病毒有个共同点就是利用批处理来进行ipc$连接,从而来猜测管理员的口令达到控制服务器的目的。病毒由几个文件和几个复杂的批处理组成。批处理算不上真正意义上的编程,但是它的一些思想和编程比较近似。通过在网上和一些初学的朋友交流,发现他们对于批处理很感兴趣,多多少少了解一些命令的用法,但缺乏比较系统的了解,所以特意写下这篇教程,好让感兴趣的朋友对批处理有个整体的认识,并能通过该教程举一反三,写出自己的批处理。 该教程一共分为4大部分,第一部分是批处理的专用命令,第二部分是特殊的符号与批处理,第三部分是批处理与变量,第四部分是完整案例。 第一部分:批处理的专用命令 批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。这些命令统称批处理命令,下面我就来给大家介绍一下批处理的命令。 1、 REM REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。例: REM 你现在看到的就是注解,这一句将不会被执行。在以后的例子中解释的内容都REM 会放在REM后面。请大家注意。 2、 ECHO ECHO 是一个回显命令主要参数有OFF和 ON,一般用ECHO message来显示一个特定的消息。例: Echo off Rem 以上代表关闭回显即不显示所执行的命令 Echo 这个就是消息。 Rem 以上代表显示“这就是消息”这列字符 执行结果: C:\> 这个就是消息。 3、 GOTO GOTO 即为跳转的意思。在批处理中允许以“:XXX”来构建一个标号然后用GOTO :标号直接来执行标号后的命令。例 :LABEL REM 上面就是名为LABEL的标号。 DIR C:\ DIR D:\ GOTO LABEL REM 以上程序跳转标号LABEL处继续执行。 4、CALL

Multiwfn入门

Multiwfn入门tips 文/Sobereva 2012-Nov-7 Multiwfn是一个功能广泛、高效、易用的量子化学波函数分析程序。写本文的目的是帮助刚接触Multiwfn的人能够在短时间内了解Multiwfn的基本原理以及如何使用。但此文并不讲解程序操作过程和原理,因为这些内容已经在诸多帖子、程序手册里有详尽描述和示例。本文着重谈一下应该优先看哪些资料,如何使用手册等问题,使读者明白Multiwfn的使用根本没有什么门槛。与此同时也提及一些量化刚入门的用户可能会忽略的要点或困惑的问题。本文内容对应的是Multiwfn 2.6版。 1 对使用者的要求 对于量化初学者,Multiwfn当成一个工具作为黑箱来用也可以,但是我还是建议使用者具备一些最基本的理论知识,这样才能避免犯低级错误,才能更透彻地理解程序原理和输出信息的物理意义。使用者只要仔细读过Levine的Quantum chem istry第五版或第六版(或具有相同级别的知识),就已经足够了,结合手册中对各个功能的理论的讲解,就完全能够理解Multiwfn涉及的全部功能的原理了。 绝大部分Multiwfn的功能运算效率都很高,而且支持并行,在普通个人双核机子上运行就已经挺快了。完全没必要弄到服务器上去执行。 2 程序的下载、安装、执行和引用 Multiwfn最新版本的可执行文件、源代码和手册pdf文档在https://www.doczj.com/doc/b615384396.html, 的首页上点击相应链接即可下载,老版本可以点击download标签然后下载。文件名上带bin 或binary的表明是已编译好的可执行文件,src代表源代码文件包。 在首页的Recent update history栏目中可以看到最新版本更新了哪些内容。在每个正式版本发布之前,有可能也把正在开发的临时版本挂在这个栏目上。临时版本未经全面测试,手册也没写全,但是已经实现了更新历史上提到的最新功能和改进。如果想尝鲜可以试试。Multiwfn更新比较快。新版本中总会不断添加新的有用的功能、改善界面设计使之更好用、修复各种bug、提升运行效率。我强烈建议时常查看Multiwfn主页,更新到最新版本。老版本的一些bug可能造成结果是错的,但是没有经验的用户又察觉不出来,这种情况甚至有可能使文章的研究的结论有误,这将是很大问题。所以,即便新版本的功能用不到,也应当勤快更新至最新版本。 程序解压后即可执行。不要解压到路径太长的文件夹里。压缩包里的settings.ini里包含了各种运行参数,这些参数平时使用时一般不需要调节。各个参数在文件中的//后面的注释中都有说明,大部分参数的用处在手册中会更详细地解释。这些参数在Multiwfn启动时会被载入。有兴趣的话,不妨将每个参数的注释都看一遍,可能会发现对你有用的。 如果是第一次使用Multiwfn,强烈建议使用Windows版,有多个原因:1 Multiwfn的开发、测试环境都在Windows下完成,所以Windows版比Linux版更可靠(运算结果应该不会有差别,因为都是相同的编译器和编译参数)。2 Linux版Multiwfn的个别功能有限制,见手册Linux users must read部分的说明。3 Linux版本使用时需要对系统进行一些配置,有可能需要安装缺失的库文件(见手册2.1.2节),而不像Windows版那样直接用就行,故略微麻烦。注意Linux版可以在纯文本环境下运行,但是在纯文本环境下一些功能所具备的图形界面就无法显示了(届时会直接导致程序退出)。 程序运行后,先输入要载入的文件名,然后根据屏幕上每个选项所表示的含义,选择相应选项,或输入相应内容即可。选项往往比较多(这是为程序的灵活性考虑),只要从选项的文字上觉得和自己的目的无关,就不必管它,这些暂时用不到的选项的用途日后会渐渐明白。使用Multiwfn的过程中一定要注意阅读和领会屏幕上的各种信息和提示,Multiwfn会尽可能在不至于信息过于冗长的情况下,直接在屏幕上告诉用户接下来应该输入什么,免得用户

批处理基础知识

批处理文件基础知识 一、单符号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中表示匹配单词的左边界,需要配合转义字符\使用。 . ①在路径的\后紧跟或者单独出现时:

【最全最详细】批处理经典入门教程

批处理经典入门教程!(从不懂到高手) 例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似): 代码如下: ping https://www.doczj.com/doc/b615384396.html, > a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt ping https://www.doczj.com/doc/b615384396.html, >> a.txt exit 是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离“从服务器中转”那一痛苦的过程。这里>的意思,是把前面命令得到的东西放到后面所给的地方,>>的作用,和>的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt 文件越来越大(想到如何搞破坏了??)。By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。 例二、再给出一个已经过时的例子(a.bat): @echo off if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif a.bat 为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ了(KAO,我的QQ还显示好友三围呢!!),所以它几乎用不上了。但曾经它的作用是不可小窥的:删除QQ的广告,让对话框干干净净。这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。在这个脚本中使用了if命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。 例三,使用批处理脚本查是否中冰河。脚本内容如下: 复制代码代码如下: @echo off

简单快速重命名同类文件批处理基础

有图有真相(完整图解)●在所要重命名的文件夹中建立一个文本文档 ●输入“dir/a/b>1.txt”(引号不用,可直接复制)?保存 ?将文本文件的后缀名改为bat:即将文本文件命中的txt 替换为bat,注意不能将“.”删掉,然后会出现 ,就成功了。 ●双击上述文件,会在文件夹中出现1.txt,打开后将文件夹中文件的名字选中复制 ●新建Excel文件,将复制的文件名粘贴到A列 ●在B列写入重命名后的文件名,如下图

●在C列输入【"ren "&A1&" "&B1&RIGHTB(A1,4)】(可直接复制,注意:4代表所要命名文件的后缀名位数加上1;ren的后面和中间的双引号里有空格;由于文字格式的不同而导致复制粘贴不成功,则按上述括弧中在Excel 的C1输入如图 ●将鼠标移动到C1列的右下角,鼠标指针变为十字形,如 图按住鼠标不动往下拉,就可以完成所有的命令,如图

●将1.txt清空(Crtl+A?Backspace),在复制C列到1.txt,保存文本。 ●重命名1.txt,将后缀名改为bat,如第二个步骤 ●双击,你将会看到 ----? 为什么001没有改变呢? 虽然是批量重命名,但是B列中的名字必须符合文件的命名规则:

1.文件名长度规定 任何一个文件名最多可使用255个英文字符,如果使用中文字符则不能超过127个汉字。 2.可用字符规定 原则上可以利用键盘输入的英文字母、符号、空格、中文等均可以作为合法字符,但由于以下字符由系统保留它用,因此不能用在文件命名中: : / \ ? * “ < > | 3.经过实验,批处理重命名中B列不能出现空格,否则将不能重命名。 编者结语: 如果你喜欢计算机,如果你喜欢简单,如果你希望真正了解计算机更实用的方面,就随时关注shichen501,笔者将陆续推出各种计算机应用说明,敬请期待!

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

目录 第一章 批处理基础 第一节 常用批处理内部命令简介 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

实用批处理(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、更正了所有的错别字,适当排版,增加条理性。

cmd命令行教程

CMD 命令行高级教程 CMD命令行高级教程精选合 目录 第一章批处理基础 第一节常用批处理内部命令简介 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 与变量延迟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 毫秒内 十、模拟进度条

最全批处理命令学习资料【完美版】

一:批处理文件 批处理文件是扩展名为·bat或·cmd的文本文件,包含一条或多条命令,由DOS或Windows系统内嵌的命令解释器来解释运行。 批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 二:常用命令: 1.echo 和@: @ #关闭单行回显 echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显,一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是echo off 状态还是echo on 状态 echo. #输出一个”回车换行”,空白行 #(同echo, echo; echo+ echo[ echo] echo/ echo") 2.errorlevel echo %errorlevel% 每个命令运行结束,可以用这个命令行格式查看返回码 默认值为0,一般命令执行出错会设errorlevel 为1 目录操作类命令: 3.dir 显示磁盘目录命令 dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件

dir c: /a:d #显示C 盘当前目录中的目录 dir c: /a:-d #显示C 盘根目录中的文件 dir c:" /b/p #/b只显示文件名,/p分页显示 dir c:" /b/p #/w不显示详细信息 dir *.exe /s #显示当前目录和子目录里所有的.exe文件 4.以树形显示当前路径文件夹结构 tree /f #显示每个文件夹中文件的名字。 5.md 建立子目录 md d:"a"b"c #如果d:"a 不存在,将会自动创建中级目录 #如果命令扩展名被停用,则需要键入mkdir "a"b"c 6.cd 改变当前目录(进入) cd \ #进入根目录 cd #显示当前目录 cd /d d:\sdk #可以同时更改盘符和目录 cd .. #返回上一级目录 7.rd 删除子目录命令 rd abc #删除当前目录里的abc 子目录,要求为空目录rd /s/q d:\temp #删除d:"temp 文件夹及其子文件夹和文件/q安静模式 磁盘操作类命令: 8.format 磁盘格式化命令 9.chkdsk 检查磁盘当前状态命令

系统垃圾清理BAT教程

清理电脑垃圾的七个bat文件 第一招:清除系统垃圾 在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:*.tmp*._mp)日志文件(*.log)临时帮助文件(*.gid)磁盘检查文件(*.chk)临时备份文件(如:*.old*.bak)以及其他临时文件特别是如果一段时间不清理IE的临时文件夹Temporary Internet Files,其中的缓存文件有时会占用上百MB的磁盘空间这些垃圾文件不仅仅浪费了宝贵的磁盘空间,严重时还会使系统运行缓慢 下面是步骤很简单就两步! 在桌面上点鼠标右键,选择新建一个记事本,把下面的字复制进去,点另存为,把文件名定为清除系统垃圾.bat就完成,记住后缀名一定要是.bat,好ok了!你的垃圾清除器就这样制作成功了!双击它就能很快地清理垃圾文件,大约一分钟不到 PS. 要复制进去的字是见下(红色部分) @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.gid del /f /s /q %systemdrive%\*.chk del /f /s /q %systemdrive%\*.old del /f /s /q %systemdrive%\recycled\*.* del /f /s /q %windir%\*.bak del /f /s /q %windir%\prefetch\*.* rd /s /q %windir%\temp & md %windir%\temp del /f /q %userprofile%\cookies\*.*

windows批处理初级教程

w i n d o w s批处理初级教程 Prepared on 24 November 2020

前一阵子使用WIN7的时候,忽然出现图标缓存的问题。去网上搜了下解决方案,发现一个比较好的处理步骤。原文我已经忘记了,后来在年三十的晚上,顿觉很无聊,就按照印象中的代码,写了一个小的批处理文件。具体参考(此处插入百度文库的那篇文章地址)。 后来觉得批处理挺好玩的,趁在家休息的这些日子,系统学习一下批处理的语法以及应用。 批处理命令通俗的讲就是平时我们见到的那些".bat"为后缀的文件,它们可以不断的重读执行命令,实现windows的自动管理,可以将用户从重复、繁琐、复杂的管理任务中解放出来,事半功倍。 Windows中常用的批处理程序应用范围主要是:文件/文件夹管理、系统启动与关闭、个性化桌面环境、个性化IE、个性化资源管理器、系统优化、系统维护与管理、系统安全、网络管理与安全、组策略与MMC的应用和其他一些高级应用。 一般而言,创建批处理文件最好的方式是使用记事本编辑保存文件。即在记事本中写代码,然后保存的时候以".bat"作为后缀即可。 看一个例子,以初步接触批处理小程序。为演示方便,PC机选择目前最为大众化的MicrosoftWindowsXP作为操作系统。 (1)在windows下按【Win+R】键,在弹出的"运行"对话框中输入"notepad" (2)在文本文件里输入 (3)保存批处理文件

(4)接下来就是运行这个批处理文件。初学者编写的小程序推荐在DOS下面运行,等已经可以独立的编写稍微复杂程序的时候在找到这个批处理文件,然后直接打开就可以了。 在windows下按【Win+R】键,在弹出的"运行"对话框中输入"cmd",并转到存储""的目录下,这里就是指的是D盘。 运行,就会出现下面的结果 如果直接选择打开"",就会出现下面的界面 所以你会发现,这种直接打开的方式不仅操作简单,而且界面简洁,但是一开始最好从DOS下面运行比较好,究竟为什么,你会在开始的几个小程序里体会到。 在学习批处理程序语法的时候,有一种非常便利的方式。比如下面要讲的第一个语法,"echo"的使用,我们可以使用下面的方法来获取命令的格式以及用途。 (1)新建一个批处理文件,具体的内容如图所示。 (2)在DOS下运行,得到下面的结果 这样我们就获得了echo命令的语法和用途。 授人以鱼不如授之以渔,掌握这个方法之后,即使长时间没写批处理小程序,我们依旧能够在最短的时间里回忆起相关的语法以及命令。 一些常用的命令有:echo、@、goto、pause、call、start、rem、if、set、setlocal、shift、for、通配符("*"、"")、管道符("|")、重定向符("<"、">"、">>")等等。 在接下来的章节中,我将简单的介绍下这些命令的使用方法。 echo命令语法及应用

bat批处理:bat批处理教程(三)

bat批处理:bat批处理教程(三) 学过汇编或C朋友肯定都知道call指令表示什么意思了在这里它意思其实也是样在批处理脚本中call命令用来从个批处理脚本中另个批处理脚本看例 8(默认 3个脚本文件名分别为start.bat、10.bat和ipc.bat): start.bat: …… CALL 10.BAT 0 …… 10.bat: …… ECHO %IPA%.%1 >HFIND.TMP …… CALL ipc.bat IPCFind.txt ipc.bat: for /f "tokens=1,2,3 delims= " %%i in (%1) do call HACK.bat %%i %%j %%k 有没有看出什么不对地方?没看出来啊?没看出来就对了其实就没有不对地方嘛你如何看出来!从上面两个脚本你可以得到如下信息: 1、脚本可以灵活运用循环运用、重复运用 2、脚本可以使用参数!有关第点就不多说了聪明你看就应该会这里说下第 2点 在start.bat中10.bat后面跟了参数0在执行时效果其实就是把10.bat里参数%1用0代替在start.bat中ipc.bat后面跟了参数ipcfind.txt(个文件也可以做参数)执行时效果就是用ipc.bat中每行3个变量(这里不懂没关系学过for命令后就懂了)对应代换ipc.bat 中%%i、%%j和%%k这里参数是非常灵活使用时需要好好体会在初学期间可以先学习只脚本至于连脚本参数起使用情况在后面学习中自然就会有比较深刻理解这是当你已经可以灵活运用批处理脚本后如何使代码写更精简更完美更高效就自然包括到了考虑范围这时候你就会发现在脚本时直接加入参数可以使代码效率加倍By the way上面这几个脚本都是Bat.Worm.Muma病毒部分在后面教程里大家将有机会见到这个病毒真面目。 那是不是说在同个目录下至少存在两个批处理脚本文件(只有个你谁?)?呵呵注意了这句话错了!!只有个照样可以----自身!看例9(默认脚本文件名a.bat): net send %1 This is a call example. call a.bat 这两句结合效果自然不如何样只有台机器来发消息谁怕谁啊?我给

好玩的批处理

@echo off ::批处理的头文件,主要是用来隐藏P处理命令的 title 群加域P处理---蔡新文制作--2009-05-23- ::P处理窗口标题、日期 echo -------------------------------------------------------------------------------- echo 使用注意事项:::下面的(7点信息)echo命令都是解释的内容信息 echo 1.系统支持工具,使用前需先行安装(光碟:\SUPPORT\TOOLS\SUPTOOLS.MSI)echo. echo 2.工具安装好后,必需在域控上执行本工具。 echo. echo 3.客户端必须要指DNS,必须能够正常解析域名。 echo. echo 4.在客户端上必须要把[使用简单文件共享]的√去掉。 echo. echo 5.必须要知道客户端上的管理员用户和密码 echo. echo 6.输入IP网段时,只需要输入1或2(是几网段就输入几),输入IP数量就是你PC机IP尾数。 echo. echo 7.输入的IP地址必须要连贯。比如:192.168.100.0 ~100.2 ~100.3 就这样连贯下去。echo. echo -------------------------------------------------------------------------------- set /p IP=请输入局域网IP网段:::以下7个set都是设置变量 set /p sl=请输入局域网IP数量: set /p ym=请输入你要加的域名: set /p ad=请输入域管理员帐户: set /p ps=请输入域管理员密码: set /p yh=请输入客户端管理员用户: set /p sp=请输入客户端管理员密码: ::FOR语言递增循环,调用netdom命令,使用上面的变量值。 for /l %%a in (1,1,%sl%) do ( netdom join 192.168.%ip%.%%a /domain: %ym% /userd: %ad% /passwordd:%ps% /usero:%yh% /passwordo:%sp% /reboot ) ::%?%里的值都是变量,变量是来调用SET赋予的值 echo %sl%台加域成功!::显示成功加域的信息 pause ::完成后,暂停完毕!

看雪文档-批处理教程

用批处理命令把一些特殊的文件按扩展名分类写到一份文件里。高中时代我最初接触到的就是DOS时代,我曾经也研究过批处理命令,但当时学得也不是很好,后来也看过一些过这方面的文章,但也没有进一步深入研究。基本上google,baidu上找不出来任何资料。今天又google,baidur查了一下,发现了好几篇文章(不过模板好像都是基于同一篇文章《简明批处理教程》,还是很少的,不过已经够用了哈。 原作出处已经找不到了,不过还是想转贴一下,实在是好东西,与公与私都要介绍一下: 批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件, 系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然 我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。下面就开始我们批处理学习之旅吧。 一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法

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

小凡使用教程

DynamipsGUI --- 强大的cisco学习工具模拟器 一、入门:如何安装DynamipsGUI 现在小凡最新的版本的是2.83,怎么样在我们的电脑上安装小凡: 二:我们通过小凡制作如下组网的模拟器:最终pc可以telnet访问R1 1、打开小凡界面如图,选择路由器和交换机的个数,同时勾选桥接到PC的复选框: 注意图中用红色方框标示的位置: 路由器的个数和交换机个数不做详细说明。 桥接到pc可以让小凡和真实的pc进行通讯 2、选择设备类型,并选择IOS文件 选中3640路由器的复选框,这里我们用3640交换机,也可以选择其它类型的交换机。选中3640后面的复选框后,可以从下面设备类型的下拉菜单中选择设备类型 单击浏览,选择IOS文件。

4、计算idle值: 单击:计算idle值,会出现如下回话框,查看IOS文件确实存在,单机确定 5、单击确定后,出现如下回话框:

单击任意键继续,出现如下界面:选择no 进入路由器后,随便配置一点东西,按住ctrl+]+i得到如下的界面,我们选择后面数字最大的值的idle值:复制粘贴到小凡中。

如图所示: 把idle值填入后,点击确定进入如下设置; 6、配置桥接参数:

如图所示,选择NIC-0也可以选择其它的,点击计算桥接参数: 出现如图所示的界面: 本PC上有两块网卡,一个物理网卡,一个虚拟网卡,用红色方框标注的是虚拟网卡,我们选择虚拟网卡的桥接参数:注:如果机器上的网卡过多,不知道哪一个是自己想要的网卡时,

这时可以先把自己不用的网卡禁用,只留自己想用网卡,这个时候该界面显示出来就只有自己想用的网卡了。 7、点击确定桥接参数,然后点击浏览确定输出目录后,点击下一步:

相关主题
文本预览
相关文档 最新文档