文档库 最新最全的文档下载
当前位置:文档库 › 批处理基础A+B

批处理基础A+B

批处理基础A+B
批处理基础A+B

批处理基础A

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

批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。

小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。

了解了大概意思后,我们正式开始学习.先看一个简单的例子!

@echo off

echo "欢迎来到非常BAT!"

pause

把上面的3条命令保存为文件test.bat或者test.cmd然后执行,

他就会在屏幕上显示以下二行话:

欢迎来到非常BAT!

请按任意键继续. . .

这就是一个简单批处理文件了,这个批处理文件一共就用了2条命令"echo" 和"pause" 还有一个特殊符号"@"

从上面这个简单的批处理中,我们可以发现其实批处理就是运用一些含有特殊意义的符号和一些完成指定功能的命令组合而成,那么在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解一下一些最常用的!

(以下内容来源网络,请各位仔细阅读,好进入下节的实例说明)

================================================== ====

批处理的常见命令(未列举的命令还比较多,请查阅帮助信息)

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 与变量延迟

介绍命令

1、REM 和::

REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。

其次, :: 也可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:

第一, 任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。

有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别。

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

第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比:: 更为适用; 另外, rem 可以用于config.sys 文件中。

2、ECHO 和@

打开回显或关闭回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。@字符放在命令前将关闭该命令回显,无论此时echo是否为打开状态。

语法:

echo [{ on|off }] [message]

echo. #此用法将显示一空行,相当于回车,非常有用。

执行echo off将关闭回显,它后面的所有命令都不显示命令本身,只显示执行后的结果,除非执行echo on命令。

执行@echo off不但关闭以后命令的回显,连echo off命令本身也不显示了。

通常以@echo off作为批处理程序的首行。

一般用ECHO MESSAGE来显示一个特定的消息。

例:

@Echo off

Echo hello

Pause

运行显示:hello

3、PAUSE

PAUSE,玩游戏的人都知道,暂停的意思

在这里就是停止系统命令的执行并显示下面的内容。

例:

PAUSE

运行显示:

请按任意键继续. . .

要显示其他提示语,可以这样用:

Echo 其他提示语& pause > nul

4、errorlevel

程序返回码

echo %errorlevel%

每个命令运行结束,可以用这个命令行格式查看返回码

用于判断刚才的命令是否执行成功

默认值为0,一般命令执行出错会设errorlevel 为1

5、title

设置cmd窗口的标题

title 新标题#可以看到cmd窗口的标题栏变了

6、COLOR

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

COLOR [attr]

attr 指定控制台输出的颜色属性

颜色属性由两个十六进制数字指定-- 第一个为背景,第二个则为

前景。每个数字可以为以下任何值之一:

0 = 黑色8 = 灰色

1 = 蓝色9 = 淡蓝色

2 = 绿色 A = 淡绿色

3 = 湖蓝色 B = 淡浅绿色

4 = 红色 C = 淡红色

5 = 紫色 D = 淡紫色

6 = 黄色 E = 淡黄色

7 = 白色 F = 亮白色

如果没有给定任何参数,该命令会将颜色还原到CMD.EXE 启动时

的颜色。这个值来自当前控制台窗口、/T 开关或

DefaultColor 注册表值。

如果用相同的前景和背景颜色来执行COLOR 命令,COLOR 命令

会将ERRORLEVEL 设置为1。

例如: "COLOR fc" 在亮白色上产生亮红色

7、mode 配置系统设备

配置系统设备。

串行口:MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]

[to=on|off] [xon=on|off] [odsr=on|off]

[octs=on|off] [dtr=on|off|hs]

[rts=on|off|hs|tg] [idsr=on|off]

设备状态: MODE [device] [/STATUS]

打印重定向:MODE LPTn[:]=COMm[:]

选定代码页:MODE CON[:] CP SELECT=yyy

代码页状态:MODE CON[:] CP [/STATUS]

显示模式:MODE CON[:] [COLS=c] [LINES=n]

击键率:MODE CON[:] [RATE=r DELAY=d]

例:

mode con cols=113 lines=15 & color 9f

此命令设置DOS窗口大小:15行,113列

8、GOTO 和:

GOTO会点编程的朋友就会知道这是跳转的意思。

在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX跳转到标号:XXX处,然后执行标号后的命令。

例:

if {%1}=={} goto noparms

if "%2"=="" goto noparms

标签的名字可以随便起,但是最好是有意义的字符串啦,前加个冒号用来表示这个字符串是标签,goto命令就是根据这个冒号(:)来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。

例:

@echo off

:start

set /a var+=1

echo %var%

if %var% leq 3 GOTO start

pause

运行显示:

1

2

3

4

9、find

在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]] /V 显示所有未包含指定字符串的行。

/C 仅显示包含字符串的行数。

/N 显示行号。

/I 搜索字符串时忽略大小写。

/OFF[LINE] 不要跳过具有脱机属性集的文件。

"string" 指定要搜索的文字串,

[drive:][path]filename

指定要搜索的文件。

如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。

Find常和type命令结合使用

Type [drive:][path]filename | find "string" [>tmpfile] #挑选包含string的行Type [drive:][path]filename | find /v "string" #剔除文件中包含string的行Type [drive:][path]filename | find /c #显示文件行数

以上用法将去除find命令自带的提示语(文件名提示)

例:

@echo off

echo 111 >test.txt

echo 222 >>test.txt

find "111" test.txt

del test.txt

pause

运行显示如下:

---------- TEST.TXT

111

请按任意键继续. . .

例:

@echo off

echo 111 >test.txt

echo 222 >>test.txt

type test.txt|find "111"

del test.txt

pause

运行显示如下:

111

请按任意键继续. . .

10、start 命令

批处理中调用外部程序的命令(该外部程序在新窗口中运行,批处理程序继续往下执行,不理会外部程序的运行状况),如果直接运行外部程序则必须等外部程序完成后才继续执行剩下的指令例:start explorer d:\

调用图形界面打开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代表的'文件类型',结果显示 .txt=txtfile

assoc .doc #显示.doc代表的'文件类型',结果显示 .doc=Word.Document.8

assoc .exe #显示.exe代表的'文件类型',结果显示 .exe=exefile

ftype #显示所有'文件类型'关联

ftype exefile #显示exefile类型关联的命令行,结果显示exefile="%1" %*

assoc .txt=Word.Document.8

设置.txt为word类型的文档,可以看到.txt文件的图标都变了

assoc .txt=txtfile

恢复.txt的正确关联

ftype exefile="%1" %*

恢复exefile 的正确关联

如果该关联已经被破坏,可以运行https://www.wendangku.net/doc/675208350.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

一般用处不大,在当前目录名不确定时,会有点帮助。(dos编程中很有用)

13、CALL

CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理

CALL [drive:][path]filename [batch-parameters]

调用的其它批处理程序。filename 参数必须具有 .bat 或 .cmd 扩展名。

CALL :label arguments

调用本文件内命令段,相当于子程序。被调用的命令段以标签:label开头

以命令goto :eof结尾。

另外,批脚本文本参数参照(%0、%1、等等)已如下改变:

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

批参数(%n)的替代已被增强。您可以使用以下语法:(看不明白的直接运行后面的例子)%~1 - 删除引号("),扩充%1

%~f1 - 将%1 扩充到一个完全合格的路径名

%~d1 - 仅将%1 扩充到一个驱动器号

%~p1 - 仅将%1 扩充到一个路径

%~n1 - 仅将%1 扩充到一个文件名

%~x1 - 仅将%1 扩充到一个文件扩展名

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

%~a1 - 将%1 扩充到文件属性

%~t1 - 将%1 扩充到文件的日期/时间

%~z1 - 将%1 扩充到文件的大小

%~$PATH : 1 - 查找列在PATH 环境变量的目录,并将%1

扩充到找到的第一个完全合格的名称。如果环境

变量名未被定义,或者没有找到文件,此组合键会

扩充到空字符串

可以组合修定符来取得多重结果:

%~dp1 - 只将%1 扩展到驱动器号和路径

%~nx1 - 只将%1 扩展到文件名和扩展名

%~dp$PATH:1 - 在列在PATH 环境变量中的目录里查找%1,

并扩展到找到的第一个文件的驱动器号和路径。

%~ftza1 - 将%1 扩展到类似DIR 的输出行。

在上面的例子中,%1 和PATH 可以被其他有效数值替换。

%~ 语法被一个有效参数号码终止。%~ 修定符不能跟%*使用

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

要理解上面的知识,下面的例子很关键。

例:

@echo off

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

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

pushd c:\windows

Call :sub tmp.txt

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

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]

如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉

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

SHIFT /2

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

15、IF

IF 条件判断语句,语法格式如下:

IF [NOT] ERRORLEVEL number command

IF [NOT] string1==string2 command

IF [NOT] EXIST filename command

下面逐一介绍,更详细的分析请看后面章节。

(1) IF [NOT] ERRORLEVEL number command

IF ERRORLEVEL这个句子必须放在某一个命令的后面,执行命令后由IF ERRORLEVEL 来判断命令的返回值。

Number的数字取值范围0~255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立

例:

@echo off

dir c:

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

IF ERRORLEVEL 1 goto 1

IF ERRORLEVEL 0 goto 0

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

:0

echo 命令执行成功!

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

goto exit

:1

echo 命令执行失败!

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

goto exit

:exit

pause

运行显示:命令执行成功!

(2) IF [NOT] string1==string2 command

string1和string2都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)

条件相等后即执行后面的command

检测当前变量的值做出判断,为了防止字符串中含有空格,可用以下格式

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

if [NOT] [string1]==[string2] command

if [NOT] “string1”==“string2” command

这种写法实际上将括号或引号当成字符串的一部分了,只要等号左右两边一致就行了,比如下面的写法就不行:

if {string1}==[string2] command

(3) IF [NOT] EXIST filename command

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

echo off

IF EXIST autoexec.bat echo 文件存在!

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

这个批处理大家可以放在C盘和D盘分别执行,看看效果

16、setlocal 与变量延迟

本条内容引用[英雄出品]的批处理教程:

要想进阶,变量延迟是必过的一关!所以这一部分希望你能认真看。

为了更好的说明问题,我们先引入一个例子。

例1:

@echo off

set a=4

set a=5 & echo %a%

pause

结果:4

解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?

让我们先了解一下批处理运行命令的机制:

批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在

处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量赋值。我们现在分析一下例1,批处理

在运行到这句“set a=5 & echo %a%”之前,先把这一句整句读取并做了预处理——对变量a 赋了值,那么%a%当然就是4了!(没有为什么,批处理就是这样做的。)

而为了能够感知环境变量的动态变化,批处理设计了变量延迟。简单来说,在读取了一条完整的语句之后,不

立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说“延迟”了对变量的赋值。

那么如何开启变量延迟呢?变量延迟又需要注意什么呢?举个例子说明一下:

例2:

@echo off

setlocal enabledelayedexpansion

set a=4

set a=5 & echo !a!

pause

结果:5

解说:启动了变量延迟,得到了正确答案。变量延迟的启动语句是“setlocal enabledelayedexpansion”,并且变量要用一对叹号“!!”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。

分析一下例2,首先“setlocal enabledelayedexpansion”开启变量延迟,然后“set a=4”先给变量a赋值为

4,“set a=5 & echo !a!”这句是给变量a赋值为5并输出(由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a 的值就是5了)。

再举一个例子巩固一下。

例3:

@echo off

setlocal enabledelayedexpansion

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

set a=%%i

echo !a!

)

pause

结果:

1

2

3

4

5

解说:本例开启了变量延迟并用“!!”将变量扩起来,因此得到我们预期的结果。如果不用变量延迟会出现什

么结果呢?结果是这样的:

ECHO 处于关闭状态。

ECHO 处于关闭状态。

ECHO 处于关闭状态。

ECHO 处于关闭状态。

ECHO 处于关闭状态。

即没有感知到for语句中的动态变化。

批处理基础B

第二节常用特殊符号

1、@ 命令行回显屏蔽符

2、% 批处理变量引导符

3、> 重定向符

4、>> 重定向符

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

6、| 命令管道符

7、^ 转义字符

8、& 组合命令

9、&& 组合命令

10、|| 组合命令

11、"" 字符串界定符

12、, 逗号

13、; 分号

14、() 括号

15、! 感叹号

16、批处理中可能会见到的其它特殊标记符: (略)

CR(0D) 命令行结束符

Escape(1B) ANSI转义字符引导符

Space(20) 常用的参数界定符

Tab(09) ; = 不常用的参数界定符

+ COPY命令文件连接符

* ? 文件通配符

/ 参数开关引导符

: 批处理标签引导符

废话少说,开讲了

1、@ 命令行回显屏蔽符

这个字符在批处理中的意思是关闭当前行的回显。我们从前几课知道

ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令,现在我们在ECHO OFF这个命令前加个@,就可以达到所有命令均不回显的要求

2、% 批处理变量引导符

这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍)。

引用变量用%var%,调用程序外部参数用%1至%9等等

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*为命令行传递给批处理

的参数

%0 批处理文件本身,包括完整的路径和扩展名

%1 第一个参数

%9 第九个参数

%* 从第一个参数开始的所有参数

参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。

例:最简单的复制文件自身的方法

copy %0 d:\wind.bat

3、> 重定向符

输出重定向命令

这个字符的意思是传递并且覆盖,他所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台)

在NT系列命令行中,重定向的作用范围由整个命令行转变为单个命令语句,受到了命令分隔符&,&&,||和语句块的制约限制。

比如:

使用命令:echo hello >1.txt将建立文件1.txt,内容为”hello “(注意行尾有一空格)

使用命令:echo hello>1.txt将建立文件1.txt,内容为”hello“(注意行尾没有空格)

4、>> 重定向符

输出重定向命令

这个符号的作用和>有点类似,但他们的区别是>>是传递并在文件的末尾追加,而>是覆盖

用法同上

同样拿1.txt做例子

使用命令:

echo hello > 1.txt

echo world >>1.txt

这时候1.txt 内容如下:

hello

world

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

这三个命令也是管道命令,但它们一般不常用,你只需要知道一下就ok了,当然如果想仔细研究的话,可以自己查一下资料。(本人已查过,网上也查不到相关资料)

<,输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。

@echo off

echo 2005-05-01>temp.txt

date

del temp.txt

这样就可以不等待输入直接修改当前日期

>&,将一个句柄的输出写入到另一个句柄的输入中。

<&,刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。

常用句柄: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、| 命令管道符

格式:第一条命令| 第二条命令[| 第三条命令...]

将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。

例如:

dir c:\|find "txt"

以上命令是:查找C:\所有,并发现TXT字符串。

FIND的功能请用FIND /? 自行查看

在不使format的自动格式化参数时,我是这样来自动格式化A盘的

echo y|format a: /s /q /v:system

用过format的都知道,再格盘时要输入y来确认是否格盘,这个命令前加上echo y并用|字符来将echo y的结果传给format命令

从而达到自动输入y的目的

(这条命令有危害性,测试时请慎重)

7、^ 转义字符

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

比如

echo test ^>1.txt

结果则是:test > 1.txt

他没有追加在1.txt里,呵呵。只是显示了出来

另外,此转义字符还可以用作续行符号。

举个简单的例子:

@echo off

echo 英雄^

是^

好^

男人

pause

不用多说,自己试一下就明白了。

8、& 组合命令

语法:第一条命令& 第二条命令[& 第三条命令...]

&、&&、||为组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行。这在批处理脚本里是允许的,而且用的非常广泛。因为批处理认行不认命令数目。

这个符号允许在一行中使用2个以上不同的命令,当第一个命令执行失败了,也不影响后边的命令执行。

这里&两边的命令是顺序执行的,从前往后执行。

比如:

dir z:\ & dir y:\ & dir c:\

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

9、&& 组合命令

语法:第一条命令&& 第二条命令[&& 第三条命令...]

用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令

这个命令和上边的类似,但区别是,第一个命令失败时,后边的命令也不会执行

dir z:\ && dir y:\ && dir c:\

10、|| 组合命令

语法:第一条命令|| 第二条命令[|| 第三条命令...]

用这种方法可以同时执行多条命令,当一条命令失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;

提示:组合命令和重定向命令一起使用必须注意优先级

管道命令的优先级高于重定向命令,重定向命令的优先级高于组合命令

问题:把C盘和D盘的文件和文件夹列出到a.txt文件中。你将如何来搞定这道题?有朋友说,这还不是很easy的问题吗?同时执行两个dir,然后把得到的结果>到a.txt里就ok了嘛,看例:

dir c:\ && dir d:\ > a.txt

仔细研究一下这句执行后的结果,看看是否能达到题目的要求!错了!这样执行后a.txt里只有D盘的信息!为什么?就因为这里&&命令和>命令不能同时出现一个句子里(批处理把一行看成一个句子)!!组合命令&&的优先级没有管道命令>的优先级高(自己总结的,不妥的地方请指正)!所以这句在执行时将本行分成这两部分:dir c:\和dir d:\ > a.txt,而并不是如你想的这两部分:dir c:\ && dir d:\和> a.txt。要使用组合命令&&达到题目的要求,必须得这么写:

dir c:\ > a.txt && dir d:\ >> a.txt

这样,依据优先级高低,DOS将把这句话分成以下两部分:dir c:\ > a.txt和dir d:\ >> a.txt。例十八中的几句的差别比较特殊,值得好好研究体会一下。

当然这里还可以利用&命令(自己想一下道理哦):

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 f:\

如果其中z盘不存在,运行显示:系统找不到指定的路径。然后终止命令的执行。

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

以上命令相当于

dir c:\

dir d:\

dir e:\1.txt

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

为什么?如果目标路径不存在,则终止执行;如果路径存在,文件不存在,则继续执行。

就说这些了!各位有什么意见请回贴!有什么疑问请到BAT交流区发贴!下一节改进!

14、() 括号

小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。

括号在for语句和if语句中常见,用来嵌套使用循环或条件语句,其实括号()也可以单独使用,请看例子。

例:

命令:echo 1 & echo 2 & echo 3

可以写成:

(

echo 1

echo 2

echo 3

)

上面两种写法效果一样,这两种写法都被视为是一条命令行。

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

15、! 感叹号

没啥说的,在变量延迟问题中,用来表示变量,即%var%应该表示为!var!,请看前面的setlocal 命令介绍。

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

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

初学者入门--批处理 教程 -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

十分经典的excel批处理教程

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

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.wendangku.net/doc/675208350.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会尽可能在不至于信息过于冗长的情况下,直接在屏幕上告诉用户接下来应该输入什么,免得用户

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

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

批处理经典入门教程!(从不懂到高手) 例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似): 代码如下: ping https://www.wendangku.net/doc/675208350.html, > a.txt ping https://www.wendangku.net/doc/675208350.html, >> a.txt ping https://www.wendangku.net/doc/675208350.html, >> a.txt ping https://www.wendangku.net/doc/675208350.html, >> a.txt ping https://www.wendangku.net/doc/675208350.html, >> a.txt ping https://www.wendangku.net/doc/675208350.html, >> a.txt ping https://www.wendangku.net/doc/675208350.html, >> a.txt ping https://www.wendangku.net/doc/675208350.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

非常经典BAT知识教程

手把手教你写批处理(willsort题注版) Climbing兄可谓用心良苦,受其感昭,略紧微薄之力;原文内容一字未易,仅于每段之下另加题注,其文大多非为纠错,多是年来体会,或偶得,或渐悟,未免偏颇;又加近来俗事渐多,闲情愈少,心浮气燥,一蹴而就。义理悖逆,敬请斧正;措辞不当,尚请莫怪。 另,建议Climbing兄取文不用拘泥于国内,此类技术文章,内外水平相差极大;与其修正国内只言片语,不如翻译国外优秀著述。 -------------------------------------------------------- 标题:手把手教你写批处理-批处理的介绍 作者:佚名 编者:Climbing 出处:中国DOS联盟之联合DOS论坛 题注:willsort 日期:2004-09-21 -------------------------------------------------------- 批处理的介绍 扩展名是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命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越“边缘化”。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 ====================================================================== ==

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

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

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教程

清理电脑垃圾的七个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\*.*

批处理从入门到精通

批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。这些命令统称批处理命令,下面我就来给大家介绍一下批处理的命令。 1、REM REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。例: REM 你现在看到的就是注解,这一句将不会被执行。在以后的例子中解释的内容都REM 会放在REM后面。请大家注意。 2、ECHO ECHO 是一个回显命令主要参数有OFF和ON,一般用ECHO message来显示一个特定的消息。例: Echo off Rem 以上代表关闭回显即不显示所执行的命令 Echo 这个就是消息。 Rem 以上代表显示“这就是消息”这列字符 执行结果: C:\>ECHO.BAT 这个就是消息。 3、GOTO GOTO 即为跳转的意思。在批处理中允许以“:XXX”来构建一个标号然后用GOTO :标号直接来执行标号后的命令。例 :LABEL REM 上面就是名为LABEL的标号。 DIR C:\ DIR D:\

GOTO LABEL REM 以上程序跳转标号LABEL处继续执行。 4、CALL CALL 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。例: 批处理2.BAT内容如下: ECHO 这就是2的内容 批处理1.BAT内容如下: ECHO 这是1的内容 CALL 2.BAT ECHO 1和2的内容全部显示完成 执行结果如下: C:\>1.BAT 这是1的内容 这就是2的内容 1和2的内容全部显示完成 5、PAUSE PAUSE 停止系统命令的执行并显示下面的内容。例: C:\> PAUSE 请按任意键继续 . . . 6、IF IF 条件判断语句,语法格式如下: IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command

bat脚本学习教程(珍藏版)

Bat脚本基础教程 TYPE显示文本文件的内容。 [drive:][path]filename SETLOCAL开始批处理文件中环境改动的本地化操作。 在执行SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个 尚未执行的SETLOCAL 命令,都会有一个隐含的ENDLOCAL 被执行。 SETLOCAL 如果命令扩展名被启用,SETLOCAL 会如下改变: SETLOCAL 批命令现在可以接受可选参数: ENABLEEXTENSIONS / DISABLEEXTENSIONS 启动或停用命令处理器扩展名。详细信息,请参阅CMD /?。 ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION 启动或停用延缓环境变量扩展名。详细信息,请 参阅SET /? 。 无论在SETLOCAL 命令之前它们的设置是什么,这些修改会一直 保留到匹配的ENDLOCAL 命令。 如果有一个参数,SETLOCAL 命令将设置ERRORLEVEL 的值。 如果有两个有效参数中的一个,该值则为零。用下列技巧,您 可以在批脚本中使用这个来决定扩展名是否可用: VERIFY OTHER 2>nul SETLOCAL ENABLEEXTENSIONS IF ERRORLEVEL 1 echo Unable to enable extensions 这个方法之所以有效,是因为在CMD.EXE 的旧版本上,SETLOCAL 不设置ERRORLEVEL 值。具有不正确参数的VERIFY 命令将 ERRORLEVEL 值初始化成非零值。 POPD命令选项到保存在PUSHD 命令里的目录。 如果命令扩展名被启用,从推目录堆栈POPD 驱动器时,POPD 命令会删除PUSHD 创建的临时驱动器号。 PUSHD保存当前目录以供POPD 命令使用,然后改到指定的目录。 PUSHD [path | ..] path 指定要成为当前目录的目录。 如果命令扩展名被启用,除了一般驱动器号和路径,PUSHD 命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个

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命令语法及应用

新手学习的DOS批处理高级教程全集

DOS批处理高级教程精选合编20080331(windows Xp) 前言 本教程主要引用伤脑筋版主(https://www.wendangku.net/doc/675208350.html,)的系列文章,同时参考引用[英雄]教程等其他批处理教程,本文将这些文章合并在一起,并适当修改,修改整理也是学习过程,力求深刻而又简单易懂,主要目的是方便自己以后查阅。 本教程很长啊,需要一定的耐心才能看完,能够看完的话,差不多就是批处理高手了,即使不是高手也是熟手了。如果连续不停的看完本教程而且理解得差不多,估计人也累趴下了。本教程适合对dos有一定基础的人慢慢学习或查阅。 查阅方法:复制目录中的条目,搜索即可。 目录 第一章批处理基础 第一节常用批处理内部命令简介 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 与变量延迟 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编程高级技巧 一、界面设计

bat批处理教程 超级详细教程

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

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 这两句结合效果自然不如何样只有台机器来发消息谁怕谁啊?我给

相关文档
相关文档 最新文档