61阅读

bat批处理命令大全-最全的批处理命令

发布时间:2017-10-05 所属栏目:Windows系列

一 : 最全的批处理命令

choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……

如: choice /c:dme defrag,mem,end

将显示

defrag,mem,end[D,M,E]? Sample: Sample.bat的内容如下: choice /c:dme defrag,mem,end

二 : Window系统的批处理变量大全

%ALLUSERSPROFILE% 本地 返回“所有用户”配置文件的位置。
%APPDATA% 本地 返回默认情况下应用程序存储数据的位置。
%CD% 本地 返回当前目录字符串。
%CMDCMDLINE% 本地 返回用来启动当前的 Cmd.exe 的准确命令行。
%CMDEXTVERSION% 系统 返回当前的“命令处理程序扩展”的版本号。
%COMPUTERNAME% 系统 返回计算机的名称。
%COMSPEC% 系统 返回命令行解释器可执行程序的准确路径。
%DATE% 系统 返回当前日期。
%ERRORLEVEL% 系统 返回上一条命令的错误代码。通常用非零值表示错误。
%HOMEDRIVE% = 当前启动的系统的所在分区 (一般为C: )
%HOMEPATH% = 当前用户环境变量(一般为C:Documents and Settings用户名)
%HOMESHARE% 系统 返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
%LOGONSERVER% 本地 返回验证当前登录会话的域控制器的名称。
%NUMBER_OF_PROCESSORS% 系统 指定安装在计算机上的处理器的数目。
%OS% 系统 返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。
%PATH% 系统 指定可执行文件的搜索路径。
%PATHEXT% 系统 返回操作系统认为可执行的文件扩展名的列表。
%PROCESSOR_ARCHITECTURE% 系统 返回处理器的芯片体系结构。值:x86 或 IA64 基于Itanium
%PROCESSOR_IDENTFIER% 系统 返回处理器说明。
%PROCESSOR_LEVEL% 系统 返回计算机上安装的处理器的型号。
%PROCESSOR_REVISION% 系统 返回处理器的版本号。
%programfiles% = 程序安装目录(一般为C:Program Files)
%PROMPT% 本地 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
%commonprogramfiles% = 通用文件目录(一般为C:Program FilesCommon Files )
%RANDOM% 系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
%system% = 系统安装盘下的system32目录(一般为C:WINDOWSSYSTEM32 )
%System%在98下指windowssystem,2000下指winntsystem32,XP下指windowssystem32文件夹
%systemdrive% = 当前启动的系统的所在分区(一般为C: )
%SystemRoot% = 当前启动的系统的所在目录(一般为C:WINDOWS )
%TEMP% 和 %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。
%TIME% 系统 返回当前时间。
%USERDOMAIN% 本地 返回包含用户帐户的域的名称。
%USERNAME% 本地 返回当前登录的用户的名称。
%USERPROFILE% = 当前用户数据变量(一般为C:Documents and Settings用户名)
%windir% = %SystemRoot% = 当前启动的系统的所在目录(一般为C:WINDOWS )

三 : 批处理Bat命令大全

for /f "skip=5 tokens=4" %%a in ('dir') do echo %%a

对 dir 命令的结果,跳过前面5行,余下的每行取第4列

每列之间的分隔符为默认的"空格"

可以注意到 dir 命令输出的前5行是没有文件名的

for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do (

echo %%a

echo %%b

echo %%c

)

对 date /t 的输出结果,每行取1、2、3列

第一列对应指定的 %%a ,后面的 %%b 和 %%c 是派生出来的,对应其它列

分隔符指定为 - 和"空格",注意 delims=- 后面有个"空格"

其中 tokens=1,2,3 若用 tokens=1-3 替换,效果是一样的

for /f "tokens=2* delims=- " %%a in ('date /t') do echo %%b

取第2列给 %%a ,其后的列都给 %%b

32 subst (外部命令)

映射磁盘。[www.61k.com]

subst z: serverd #这样输入z:就可以访问serverd了

subst z: /d #取消该映射

subst #显示目前所有的映时

38 xcopy (外部命令)

文件拷贝

xcopy d:mp3 e:mp3 /s/e/i/y

复制 d:mp3 文件夹、所有子文件夹和文件到 e: ,覆盖已有文件

加 /i 表示如果 e: 没有 mp3 文件夹就自动新建一个,否则会有询问

如何写BAT命令

计算机知识 2009-01-29 15:32 阅读512 评论2 字号: 大大 中中 小小 这篇也是在别人的博客里借用过来与大家共享的。

如何创建批处理文件?

不要听了批处理文件就感到很神气,其实这东西很简单的.你用过记事本没有?用过? 好的.将记事本打开,什么都不用写,然后选择文件,保存.保存类型选择所有文件,文件名则命名为 *.bat 这个*代表是文件名,你可以随便的起.保存好之后,看看你保存的地方,会出现一个白色窗口里有个黄色齿轮的图标.这东西就是你创建的批处理文件,双击他就可以运行,但他现在由于里面没有输入任何命令,所以他运行了并不会做任何事

批处理命令 批处理Bat命令大全

情.当我们想往这个*.bat文件中添加东西时,只要右键选择他,然后选择编辑,就可以打开记事本往内输入命令了.

批处理文件中的命令是什么?

批处理文件中的命令暂时先可以理解为dos命令,等稍后深入理解了以后再进行解释.批处理顾名思义就是一大堆东西堆在一起处理.换句话说就是往里面写一条条dos命令,然后按顺序挨个执行,效果跟你在cmd里敲dos命令是一个效果.只不过用批处理写好之后,要运行只要双击下就可以运行了.而不用再一遍一遍的重复的往里面打命令.这就是批处理文件的好处.

除了运行dos命令之外,他还可以支持选择结构if,循环结构for,goto等,与c有点类似,但远没有c全面,并且编写语言十分不规范.

批处理语法:

先讲个最基本的东西 @echo off

echo的意思是回旋,这里的意思就是回显,echo off意思就是关闭回显.前面的@表示echo off 这一行也不会回显你可以试着去掉@和整行去掉.@的另一个功能是在执行完批处理文件时自动恢复命令回显。[www.61k.com)如果第一句用的是ECHO OFF,那么在执行完批处理文件以后不会显示命令提示符。

举个例子:如果我们先创建一个1.bat文件,往里面输入:

dir 然后保存在c:\下.然后我们运行cmd,进入c盘根目录下,输入1.bat,则显示:

C:>dir

驱动器 C 中的卷没有标签。

卷的序列号是 0C5D-07FF

C: 的目录

2004-08-25 00:45 <DIR> WINDOWS

2004-08-25 00:51 <DIR> Documents and Settings

...........

C:

如果将1.bat内容修改成

批处理命令 批处理Bat命令大全

echo off

dir

然后再在cmd里输入1.bat,则会显示

C:>echo off //因为运行了echo off,所以没有显示dir命令,直接显示了结果

驱动器 C 中的卷没有标签。(www.61k.com)

卷的序列号是 0C5D-07FF

C: 的目录

2004-08-25 00:45 <DIR> WINDOWS

2004-08-25 00:51 <DIR> Documents and Settings

.....

C:

如果将1.bat文件修改成:

@echo off

dir

则显示成:

C:>1.bat //与前面不同,并没有显示echo off,原因是加了@,所以不显示@后面的内容.又因为加

//了echo off,所以后面的命令不显示,直接显示结果

驱动器 C 中的卷没有标签。

卷的序列号是 0C5D-07FF

C: 的目录

2004-08-25 00:45 <DIR> WINDOWS

批处理命令 批处理Bat命令大全

2004-08-25 00:51 <DIR> Documents and Settings

....

C:

通过以上的比较,相信你对echo off命令已经充分掌握了接下来讲的是call命令:

call是打电话的call,而不是"喔靠"的靠:).call的意思为调用.假如有2个批处理文件a.bat和b.bat.如果我想运行a.bat的当中运行b.bat.如何运行呢?其实很简单,只要在a.bat文件中输入call命令,则可以在a.bat运行的当中,运行b.bat,等b.bat运行完之后,继续执行a.bat

call命令格式:

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

batch-parameters 指定批处理程序所需的命令行信息。(www.61k.com)

举例如下,我们在c盘根目录下创建a.bat文件,内容为:

echo this is a.bat

call d:b.bat

echo done

然后在d盘根目录下创建b.bat,内容为:

echo this is b.bat

保存后,打开cmd,进入c盘根目录,然后输入1.bat,显示如下:

C:>a.bat

C:>echo this is a.bat

this is a.bat

C:>call d:b.bat

批处理命令 批处理Bat命令大全

C:>echo this is b.bat

this is b.bat

C:>echo done

done

由例子很容易看出来,是先运行a.bat的内容,直到遇到call b.bat后,则调用b.bat,运行完b.bat后,再返回a.bat接着运行call b.bat后面的echo done语句,直至将a.bat的所有批处理命令运行完.

注:里面有个[batch-parameters]里面的所指的参数是什么,知道的朋友能否告知,不胜感激.

PAUSE 命令

暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。[www.61k.com)只能在批处理程序中使用该命令。

rem命令:

表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释).

同时你可以用两个冒号来替代rem.如: ::等同于一个rem.但他们有个区别,就是用::作注释的话他是不回显的,即使你打echo on强制回显也没有同的.同时rem可以在config.sys中加注释.

语法: rem[commnet]

批处理文件参数:

有点变成基础的人都知道函数有参数.批处理文件也有参数.

我打个比方,希望能帮助没有语言基础的人也能看的非常明白.

我从例子里开始吧.首先在c盘根目录下创建一个批处理文件 a.bat,里面输入内容

echo %1

然后打开cmd,然后进入c盘根目录.输入:a "this is a canshu"

得到结果如下:

批处理命令 批处理Bat命令大全

C:>a.bat "this is a test"

C:>echo "this is a test"

"this is a test"

输入的a "this is a canshu"中,a为新建的a.bat的文件名a(后面的.bat可写也可不写),而a后面的 "this is a canshu"这句话就是参数,写在这的参数,在程序运行中就将参数自动放到批处理程序中去.那么放在什么位置呢?就是放在 %1的地方.

看了例子,让我们看看整个关于参数的定义如何:

批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。(www.61k.com)

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。//我们上个程序的例子里就有%1,他就是参数,而输入中"this is a test"作为参数就直接放到%1的位置,于是程序就变成了 echo "this is a test".

再举几个例子帮助你理解:

C:根目录下一批处理文件名为b.bat,内容为:

@echo off

type %1 //type为dos中的输出命令,可以用来输出文本文件的内容,比如我们新建一个1.txt文件

//里面输入内容,保存.进cmd,如果输入1.txt则看不了1.txt文件内容,但是如果我

//想看怎么办呢?这时候可以用type命令,只要在cmd里输入type 1.txt就能显示

//1.txt文件中的内容了

type %2

那么运行C:>b a.txt b.txt

%1 : 表示a.txt

%2 : 表示b.txt

批处理命令 批处理Bat命令大全

于是上面的批处理命令就变成了

@echo off

type a.txt

type b.txt

于是上面的命令将顺序地显示a.txt和b.txt文件的内容。(www.61k.com)

没有编程基础的人可能要问,干什么要弄个参数啊?在后面加个参数多麻烦啊?直接往里面写不就好了啊?!其实这样想有对的方面也有错的方面.还是举个例子说明吧.

第一步还是在c盘根目录下新建一个批处理文件,我们取名仍为a.bat.往里面的内容输入为:

ping %1 //ping命令可以简单理解为测试一台机器开着还是没有开,如果开着的话,他就回给你回送回应.

然后进cmd,我们想测试下163的服务器是不是开着,则输入a www.163.com

对于知道ping命令的人,可以打ping进行检查,但如果想ping的人不知道ping命令怎么用,那怎么办啊?这时候你就可以把命令预先输入到批处理文件中,保存好,然后让不会用的人进cmd,运行你的批处理文件,文件名后面加上他要ping 的网站地址就行了.换句话说,他想ping 163就直接加163的网址,想ping sina就直接加sina的网址.这样只要输入一个参数,而不用改程序本身,整个程序的通用性就大大提高了.

这是对于一个简单的ping命令,你或许觉得用参数不值得,还是直接改不就好了啊.但如果程序有很多条,你一下找不到在哪改怎么办啊?所以,不管你是菜哥,菜弟,菜姐,菜妹,只要运行下,输入参数,结果自己就会出来,不用再象你一样,考虑怎么编写批处理文件.人家只要知道是输入什么东西能让批处理程序运行,而编写的人则想的是如何让不懂程序的人能运行程序.

批处理参数就这么简单,不知道你理解了没有?但如果你想深一步了解批处理参数,可以接着往下看,如果不想深入了解,知道现在这么多也就够了.

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

因为参数只有1%-9%,但当我们要引用第十个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下:

初始状态, cmd 为命令名, 可以用 %0 引用

批处理命令 批处理Bat命令大全

cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

^ ^ ^ ^ ^ ^ ^ ^ ^ ^

&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

经过1次shift后, cmd 将无法被引用

cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

^ ^ ^ ^ ^ ^ ^ ^ ^ ^

&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义

cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

^ ^ ^ ^ ^ ^ ^ ^ ^ ^

&line; &line; &line; &line; &line; &line; &line; &line; &line; &line;

%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针.

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

if goto choice for高级语法

if命令

说得通俗点,if就相当于我们白话里的如果.

举个例子:如果a喜欢b,那么a就要娶b. 这句话翻译成计算机语言就成了

批处理命令 批处理Bat命令大全

if a喜欢b a就要娶b.

当然拉,计算机不可能理解a喜欢b,a就要娶b这两句话,这里只是举个例子让你方便理解.

if语句一共有3种模式,如下:

IF [NOT] string1==string2 command

IF [NOT] EXIST filename command

IF [NOT] ERRORLEVEL number command

NOT 指定只有条件为 false 的情况下, Windows XP 才应该执行该命令。(www.61k.com)

ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为 true。

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

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

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

我们先讲解第一种:

IF [NOT] string1==string2 command

自然语句意思:如果string1==string2,那么执行command

下面再举个能实际应用的if语句.

自然语句:如果输入的参数为3,那么显示"a=3"

计算机语句:

@echo off

if "%1"=="3" echo "a=3"

或者写成

批处理命令 批处理Bat命令大全

@echo off

if %1==3 echo "a=3"

注意:当要测试的时候,因在cmd底下,输入1.bat 3.因为这里用了是传递参数,具体看文章前部分"批处理文件参数".

第二种:

IF [NOT] EXIST filename command

这条命令用语检测文件是否存在.如果存在,执行command.如果不存在,则什么也不显示.

如:我们想检查e盘根目录下是否有一个叫2.txt的文件.如果存在,则显示exist.如果不存在,则什么也不显示.

批处理命令如下:

@echo off

if exist e:2.txt echo "exist 2.txt"

第三种:

IF [NOT] ERRORLEVEL number command

这个我引用点资料,感觉别人写得更详细,引用部分为粉色字部分:

if errorlevel <数字> 待执行的命令

很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。[www.61k.com)如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。

如if errorlevel 2 goto x2

==== 注 ===========

返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:

批处理命令 批处理Bat命令大全

if errorlevel 1 set el=1

if errorlevel 2 set el=2

if errorlevel 3 set el=3

if errorlevel 4 set el=4

if errorlevel 5 set el=5

...

当然, 也可以使用以下循环来替代, 原理是一致的:

for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e //此处为一个for循环,后面会继续 介绍到的,看不懂可以先跳过去

if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码.

另外, 虽然 if errorlevel=<数字> command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了

choice命令

????

goto命令

for命令

for命令其实就是一个循环命令,如果我们想重复一个语句,就可以用for命令.通过for命令,可以控制循环的次数等.

语法:

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

%variable 指定一个单一字母可替换的参数。[www.61k.com)

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

批处理命令 批处理Bat命令大全

command 指定对每个文件执行的命令。(www.61k.com]

command-parameters

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

在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable

而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.

不知道你你看懂了没有,其实还是很容易理解的,还是举个例子吧.我想用type打印所有c盘根目录下的bat文件和txt文件.dos底下命令就是 type *.bat *.txt.先将该文件保存在c盘根目录下,名称为a.bat

用for命令如下:

for %%t in (*.bat *.txt) do type %%t

%%t其实就是代表的一个参数,他的内容在in() 里面括号里的内容.也就是说这句话里的%%t就变成了*.bat *.txt了.do就是做的意思,执行type命令,而type后面是%%t,而%%t又是*.bat *.txt.所以原来这句命令的意思就变成了:

type *.bat *.txt

执行时进cmd,然后到c盘根目录下输入a.bat就可以打印出c盘根目录下所有扩展名为.bat和.txt的文件内容了.

这里要注意:in后面有个空格.

在xp底下,for命令扩展名被起用因此for的功能变得更加强大.下面讲一个真正的循环.

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

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

因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生

序列 (5 4 3 2 1)

里面第一个1在start的位置,意思是起始位置,第2个1在step位置,英文意思是跨步,在这里面的意思是每次增量为1.后面的5在end的位置,意思是结束时的大小.

这句话的意思就是从1(start)开始增加,每次增加1(step),一直到变到5(end)为止.

批处理命令 批处理Bat命令大全

这个有什么用呢?其实我感觉这个东西的用处还是很大的.举个最简单的例子,我们想重复回显"i am the best"这句话,重复显示10遍.那么for命令如下:

for /L %%e in (1,1,10) do echo "i am the best"

这时,cmd就会重复输入"i am the best"10遍.

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

看完整篇文章了吗?咳...我写的不容易啊....

现在不知道你对bat有了什么样的理解,我现在的感觉就是bat就是dos命令的组合,你把dos命令全写进bat命令,只要运行下bat就会挨个执行dos命令,这无疑提供了不少的方便。[www.61k.com]

下面我再举些实例.

删除默认共享:

对于默认共享不知道你了解多少,反正留着是个隐患,现在唯一的办法好象只能做个bat文件进行删除.命令如下:

net share ipc$ /delete

net share admin$ /delete

net share c$ /delete

net share d$ /delete

net share e$ /delete

??

里面的c d e为你的盘符。如果你只有一个分区,那么写到net share c$ /delete为止就可以了。如果你有n个分区,那么就挨个写下去。

net share d$ /delete

net share e$ /delete

net share f$ /delete

net share g$ /delete……

批处理命令 批处理Bat命令大全

登陆到局域网的机器快捷方式(对方机器有密码且为2000或以上系统)

net use 192.168.0.1 [密码] /user:[用户名]

explorer 192.168.0.1

bat文件备份注册表

set regfile=%date% //设置变量,下面出现%regfile%的都自动替换“当天date”

if exist "%regfile%" goto end //如果发现当天date命名的目录,跳到文件尾。[www.61k.com]

md temp //建temp目录

call 1.bat //调用1.bat

del 1.bat

ren 2.bat 1.bat

ren 3.bat 2.bat

ren 4.bat 3.bat

echo move "%regfile%" temp >4.bat //写 移动“当天date命名的目录”到temp的bat文件 。

md "%regfile%" //建当天date命名的目录

cd "%regfile%" //进入

reg export hkcu hkcu.reg //导出注册表

reg export hklm hklm.reg

//HKEY_CURRENT_USER 缩写hkcu 。存放当前用户个人数据

//HKEY_LOCAL_MACHINE 缩写hklm 。系统的核心数据

cd..

deltree /y temp >nul ////返回上级目录 ,删temp文件夹

批处理命令 批处理Bat命令大全

:end

批处理中特殊符号.:

1.@

隐藏执行的命令,只显示结果.

例子:

echo 欢迎来到甲壳虫学习

@echo 欢迎来到甲壳虫学习

pause

2.&

命令连接符号.就是把两个命令连续执行,不用分行

例子:

dir c: & dir d: & dir e:

3.&&

连接两个命令,当&&前的命令成功时,才执行&&后的命令。[www.61k.com]

例子:

dir c: && dir d:

dir z: && dir d:

4.|

管道符,就是将上一个命令的输出内容,作为下一个命令的输入内容.

例子:

type c:windows*.log|more

批处理命令 批处理Bat命令大全

5.||

命令连接符号,表示上一条命令执行失败后,才执行||符号后的内容.

例子:

dir z:|| dir c:

6.>

重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容被覆盖.

dir c: >d:test.txt

7.>>

重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会被增加

在后面.

例子:

dir c: >>d:test.txt

dir d: >>d:test.txt

8.<

重定向符,将后面的指定设备的内容,作为前面命令的输入内容

例子:

建立个1.txt文件,内容为net user

nc -l -v -p 888

nc 127.0.0.1 888 <1.txt

9.^

取消特殊符号的作用

例子:

批处理命令 批处理Bat命令大全

echo ^> >1.txt

9.%

有点特殊,我先讲一个%0 它可以返回批处理所在绝对路径

例子:

@echo off

net user

%0

10.*

通配符号,表示任意个字符.

例子:

del c:windows*.log

11.?

通配符号,表示任意一个字符.

例子:

net ?ser

12.“.”

表示当前目录

例子:

dir .

13.".."

表示上一级目录

例子:

批处理命令 批处理Bat命令大全

cd..

14." "

界定符,通常用来引用含有空格的目录.

例子:

dir "C:Documents and Settings"

15.":"

标签定位符,表示后面的内容是一个标签名

例子:

@echo off

:start

echo Hello world,heiying is there..

pause

goto start

16.","

某些时候可以当空格使用

例子:

echo,

dir,c:

17.";"

分号作用就是,当命令相同时,可以将不同目标用;来隔离.

例子:

dir c:;d:

批处理命令 批处理Bat命令大全

总结:

实例

@echo off

:refresh

ping www.qq.com&&exit

ipconfig /release

pause

ipconfig /renew

pause

goto refresh

批处理命令 批处理Bat命令大全

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V]

[/W]

[/C] [/I] [/Q] [/F]

[/L] [/H] [/R] [/T] [/U]

[/K] [/N] [/O] [/X]

[/Y] [/-Y] [/Z]

[/EXCLUDE:file1[+file2][+file3]...]

source 指定要复制的文件。(www.61k.com]

destination 指定新文件的位置和/或名称。

/A 只复制有存档属性集的文件,

但不改变属性。

/M 只复制有存档属性集的文件,

并关闭存档属性。

/D:m-d-y 复制在指定日期或指定日期以后改变的文件。

如果没有提供日期,只复制那些源时间

比目标时间新的文件。

/EXCLUDE:file1[+file2][+file3]...

指定含有字符串的文件列表。如果有任何

字符串与要被复制的文件的绝对路径

相符,那个文件将不会得到复制。

例如,指定如 obj 或 .obj 的字符串会排除 目录 obj 下面的所有文件或带有

.obj 扩展名的文件。

/P 创建每个目标文件前提示。

/S 复制目录和子目录,除了空的。

/E 复制目录和子目录,包括空的。

与 /S /E 相同。可以用来修改 /T。 /V 验证每个新文件。

/W 提示您在复制前按键。

/C 即使有错误,也继续复制。

/I 如果目标不存在,又在复制一个以上的文件, 则假定目标一定是一个目录。

/Q 复制时不显示文件名。

/F 复制时显示完整的源和目标文件名。

/L 显示要复制的文件。

/H 也复制隐藏和系统文件。

/R 改写只读文件。

批处理命令 批处理Bat命令大全

/T 创建目录结构,但不复制文件。[www.61k.com)不

包括空目录或子目录。/T /E 包括 空目录和子目录。

/U 只复制已经存在于目标中的文件。

/K 复制属性。一般的 Xcopy 会重设只读属性。 /N 用生成的短名复制。

/O 复制文件所有权和 ACL 信息。

/X 复制文件审核设置(隐含 /O)。

/Y 禁止提示以确认改写一个

现存目标文件。

/-Y 导致提示以确认改写一个

现存目标文件。

/Z 用重新启动模式复制网络文件。

命令选项 /Y 可以预先在 COPYCMD 环境变量中设置。

这可能被命令行上的 /-Y 改写。

net use命令详解

net use命令详解

net use ipipc$ " " /user:" " 建立IPC空链接

net use ipipc$ "密码" /user:"用户名" 建立IPC非空链接

net use h: ipc$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:

net use h: ipc$ 登陆后映射对方C:到本地为H:

net use ipipc$ /del 删除IPC链接

net use h: /del 删除映射对方到本地的为H:的映射

net user 用户名 密码 /add 建立用户

net user guest /active:yes 激活guest用户

net user 查看有哪些用户

net user 帐户名 查看帐户的属性

net localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意:administrator后加s用复数

net start 查看开启了哪些服务

net start 服务名 开启服务;(如:net start telnet, net start schedule)

net stop 服务名 停止某服务

net time 目标ip 查看对方时间

net time 目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息

net view 查看本地局域网内开启了哪些共享

net view ip 查看对方局域网内开启了哪些共享

批处理命令 批处理Bat命令大全

net config 显示系统网络设置

net logoff 断开连接的共享

net pause 服务名 暂停某服务

net send ip "文本信息" 向对方发信息

net ver 局域网内正在使用的网络连接类型和信息

net share 查看本地开启的共享

net share ipc$ 开启ipc$共享

net share ipc$ /del 删除ipc$共享

net share c$ /del 删除C:共享

net user guest 12345 用guest用户登陆后用将密码改为12345 net password 密码 更改系统登陆密码

netstat -a 查看开启了哪些端口,常用netstat -an

netstat -n 查看端口的网络连接情况,常用netstat -an

netstat -v 查看正在进行的工作

netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)

netstat -s 查看正在使用的所有协议使用情况

nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写

tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”用于设置超时间隔。(www.61k.com]

ping ip(或域名) 向对方主机发送默认大小为32字节的数据,参数:“-l[空格]数据包大小”;“-n发送数据次数”;“-t”指一直ping。 ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)

ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息

tlist -t 以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)

kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)

del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件

C盘中存在2个文件:A.txt(大小:1MB)和B.txt(大小:2MB)。

文件所在的目录未知,请问如何用批处理自动搜索文件并判断其大小?

如果小于1MB就显示文件具体大小,大于1MB就将文件复制到D盘

@echo off

for /f "delims=" %%a in ('dir/b/s/a-d c:*.txt') do (

批处理命令 批处理Bat命令大全

if "%%~nxa"=="1.txt" call :lis 1048576 %%~za "%%a"

if "%%~nxa"=="2.txt" call :lis 2097152 %%~za "%%a"

)

pause&exit

:lis

if %2 lss %1 (echo %~3 大小为: %2 kb) else (copy/y "%~3" "d:%~nx3") goto :eof

变量累加

@echo off

setlocal enabledelayedexpansion

set bm_bak_num=0

for /r f:backup2010-04-22bm数据库备份 %%i in (*.bak) do set /a bm_bak_num+=1 echo %bm_bak_num%

pause

本文标题:bat批处理命令大全-最全的批处理命令
本文地址: http://www.61k.com/1101790.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1