(整理)批处理

前言

批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。结合自己或第三方工具,可以做一些临时方便的自定义工具。

什么是批处理

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为bat。

目前比较常见 的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。这里要讲的就是DOS批处理。

流程

一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。

系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。

简要说明

命令

如:echo、mkdir 、rem、pause、call、Set、Type

符号


回显屏蔽


@


重定向1


>与>>


重定向2


<


管道符号


|


转义符


^


逻辑命令符


&、&&、||

文件夹


cd


显示当前目录名或改变当前目录。


md


创建目录。


rd


删除一个目录。


dir


显示目录中的文件和子目录列表。


tree


以图形显示驱动器或路径的文件夹结构。


path


为可执行文件显示或设置一个搜索路径。


xcopy


复制文件和目录树。

文件


Type


显示文本文件的内容。


copy


将一份或多份文件复制到另一个位置。


del


删除一个或数个文件。


move


移动文件并重命名文件和目录。(Windows XP Home Edition中没有)


ren


重命名文件。


replace


替换文件。


attrib


显示或更改文件属性。


find


搜索字符串。


fc


比较两个文件或两个文件集并显示它们之间的不同

网络


ping


进行网络连接测试、名称解析


ftp


文件传输


Net


网络命令集及用户管理


telnet


远程登陆


Ipconfig


显示、修改TCP/IP设置


msg


给用户发送消息


arp


显示、修改局域网的IP地址-物理地址映射列表

系统


at


安排在特定日期和时间运行命令和程序


Shutdown


立即或定时关机或重启


tskill


结束进程


Taskkill


结束进程(比tskill高级,但WinXPHome版中无该命令)


Tasklist


显示进程列表(Windows XP Home Edition中没有)


sc


系统服务设置与控制


reg


注册表控制台工具


Powercfg


控制系统上的电源设置

注:命令名/?的方式可以获得说明和参数提示

例如:对dir命令的应用不熟悉,可以在命令行窗口下输入:dir /?

常用命令表

基础概念:盘符、文件、目录(文件夹)、子目录、根目录、当前目录

每个命令的完整说明请加 /? 参数参考微软的帮助文档可以看到,在 /? 帮助里,"命令扩展名"一词会经常出现"命令扩展名"是指相对于win98的dos版本而言,每个命令新增的功能命令测试环境win2000proSP4win98的命令功能太少,就不作研究了。


Echo


打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。


echo [{on|off}] [message]


Sample:@echo off / echo hello world


在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定的文件中。


Rem


注释命令,类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。


Rem Message


Sample:@Rem Here is the description


.


Pause


暂停命令。运行 Pause 命令时,将显示下面的消息:Press any key to continue. . .(或:请按任意键继续. . .)


Sample:

@echo off

:begin

copy G:*.* d:/back

echo 请插入另一张光盘...

pause

goto begin


在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:/back中。显示的注释提示您将另一张光盘盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。


Call


从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。


call [[Drive:][Path] FileName ] [:label [arguments]]


参数[Drive:}[Path] FileName


指定要调用的批处理程序的位置和名称。


start


调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。


常用参数:

MIN 开始时窗口最小化

SEPARATE 在分开的空间内开始 16 位 Windows 程序

HIGH 在 HIGH 优先级类别开始应用程序

REALTIME 在 REALTIME 优先级类别开始应用程序

WAIT 启动应用程序并等候它结束

parameters 这些为传送到命令/程序的参数


如:start calc.exe


即可打开Windows的计算器。

执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。


Goto


跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。


goto label (label是参数,指定所要转向的批处理程序中的行。)


Sample:

if {%1}=={} goto noparms

if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释

。)

@Rem check parameters if null show usage

:noparms

echo Usage: monitor.bat ServerIP PortNumber

goto end


标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里


echo 和 @


回显控制命令


@ #关闭单行回显

echo off #从下一行开始关闭回显

@echo off #从本行开始关闭回显。一般批处理第一行都是这个

echo on #从下一行开始打开回显

echo #显示当前是 echo off 状态还是 echo on 状态

echo. #输出一个"回车换行",一般就是指空白行

echo hello world #输出hello world

"关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果批处理开始和结束时,系统都会自动打开


Errorlevel


程序返回码


echo %errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码用于判断刚才的命令是否执行成功默认值为0,一般命令执行出错会设 errorlevel 为1


Dir


显示目录中的文件和子目录列表


dir #显示当前目录中的文件和子目录

dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件

dir c: /a:d #显示 C 盘当前目录中的目录

dir c:/ /a:-d #显示 C 盘根目录中的文件dir d:/mp3 /b/p #逐屏显示 d:/mp3 目录里的文件,只显示文件名,不显示时间和大小

dir *.exe /s #显示当前目录和子目录里所有的.exe文件其中 * 是通配符,代表所有的文件名,还一个通配符 ? 代表一个

#任意字母或汉字如 c*.* 代表以 c 开头的所有文件?.exe 代表所有文件名是一个字母的.exe文件如果指定的目录或文件

#不存在,将返回 errorlevel 为1;

# 每个文件夹的 dir 输出都会有2个子目录 . 和 ... 代表当前目录.. 代表当前目录的上级目录

dir . #显示当前目录中的文件和子目录

dir .. #显示当前目录的上级目录中的文件和子目录

其它参数可参考 dir /?


Cd


更改当前目录


cd mp3 #进入当前目录中的mp3 目录

cd .. #进入当前目录中的上级目录

cd/ #进入根目录

cd #显示当前目录

cd /d d:/mp3 #可以同时更改盘符和目录

cd "Documents and Settings"/All users文件名带空格,路径前需要加上引号!!如果更改到的目录不存在,则出错返


Md


创建目录


md abc #在当前目录里建立子目录 abc

md d:/a/b/c #如果 d:/a 不存在,将会自动创建


Rd


删除目录


rd abc #删除当前目录里的 abc 子目录,要求为空目录

rd /s/q d:/temp #删除 d:/temp 文件夹及其子文件夹和文件,不需要按 Y 确认


Del


删除文件


del d:/test.txt #删除指定文件,不能是隐藏、系统、只读文件

del *.*删除当前目录里的所有文件,不包括隐藏、系统、只读文件,要求按 Y 确认

del /q/a/f d:/temp/*.*删除 d:/temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

del /q/a/f/s d:/temp/*.*删除 d:/temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录


Ren


文件重命名


ren 1.txt 2.bak #把 1.txt 更名为 2.bak

ren *.txt *.ini #把当前目录里所有.txt文件改成.ini文件

ren d:/temp tmp #支持对文件夹的重命名


Cls


清屏


Type


显示文件内容


type c:/boot.ini #显示指定文件的内容,程序文件一般会显示乱码

type *.txt #显示当前目录里所有.txt文件的内容


Copy


拷贝文件


copy c:/test.txt d:/复制 c:/test.txt 文件到 d:/

copy c:/test.txt d:/test.bak复制 c:/test.txt 文件到 d:/ ,并重命名为 test.bak

copy c:/*.*复制 c:/ 所有文件到当前目录,不包括隐藏文件和系统文件不指定目标路径,则默认目标路径为当前目录

copy con test.txt从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机,nul代表空设备

copy 1.txt + 2.txt 3.txt合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件如果不指定 3.txt ,则保存到 1.txt

copy test.txt +复制文件到自己,实际上是修改了文件日期


Title


设置cmd窗口的标题


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


Ver


显示系统版本


label 和 vol


设置卷标


vol #显示卷标

label #显示卷标,同时提示输入新卷标

label c:system #设置C盘的卷标为 system


rem 和 ::


注释命令


注释行不执行操作


date 和 time


日期和时间


date #显示当前日期,并提示输入新日期,按"回车"略过输入

date/t #只显示当前日期,不提示输入新日期

time #显示当前时间,并提示输入新时间,按"回车"略过输入

time/t #只显示当前时间,不提示输入新时间


goto 和 :


跳转命令


:label #行首为:表示该行是标签行,标签行不执行操作

goto label #跳转到指定的标签那一行


Find


(外部命令)查找命令


find "abc" c:/test.txt在 c:/test.txt 文件里查找含 abc 字符串的行如果找不到,将设 errorlevel 返回码为1

find /i "abc" c:/test.txt查找含 abc 的行,忽略大小写

find /c "abc" c:/test.txt显示含 abc 的行的行数


More


(外部命令)逐屏显示


more c:/test.txt #逐屏显示 c:/test.txt 的文件内容


Tree


显示目录结构


tree d:/ #显示D盘的文件目录结构


&


顺序执行多条命令,而不管命令是否执行成功


c: & cd/ & dir /w相当于把下面3行命令写到1行去了c:cd/dir /w


&&


顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令


f: && cd/ && dir >c:/test.txt注意如果f盘不存在,那么后面2条命令将不会执行。

find "ok" c:/test.txt && echo 成功如果找到了"ok"字样,就显示"成功",找不到就不显示


||


顺序执行多条命令,

当碰到执行正确的命令后将不执行后面的命令


find "ok" c:/test.txt || echo 不成功如果找不到"ok"字样,就显示"不成功",找到了就不显示


|


管道命令


前一个命令的执行结果输出到后一个命令


dir *.* /s/a | find /c ".exe"


管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数


> 和 >>


输出重定向命令

> 清除文件中原有的内容后再写入

>> 追加内容到文件末尾,而不会清除原有的内容主要将本来显示在屏幕上的内容输出到指定文件中指定文件如果不存在,则自动生成该文件


echo hello world>c:/test.txt 生成c:/test.txt文件,内容为hello world这个格式在批处理文件里用得很多,可以生成.reg .bat .vbs 等临时文件

type c:/test.txt >prn 屏幕上不显示文件内容,转向输出到打印机

echo hello world>con 在屏幕上显示hello world,实际上所有输出都是默认 >con 的

copy c:/test.txt f: >nul 拷贝文件,并且不显示"文件复制成功"的提示信息,但如果f盘不存在,还是会显示出错信息

copy c:/test.txt f: >nul 2>nul 不显示"文件复制成功"的提示信息,并且f盘不存在的话,也不显示错误提示信息

echo ^^W ^> ^W>c:/test.txt 生成的文件内容为 ^W > W^ 和 > 是控制命令,要把它们输出到文件,必须在前面加个 ^符号

< 从文件中获得输入信息,而不是从屏幕上

一般用于 date time label 等需要等待输入的命令,这样就可以不等待输入直接修改当前日期


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


命令行传递给批处理的参数

%0 批处理文件本身

%1 第一个参数

%9 第九个参数

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


在C盘根目录新建test.bat,内容如下:

@echo off

echo %0

echo %1

echo %2

echo %*

运行cmd,输入 c:/test.bat "/a" /b /c /d,可以看出每个参数的含意 修改test.bat内容如下

@echo off

echo %1

echo %~1

echo %0

echo %~f0

echo %~d0

echo %~p0

echo %~n0

echo %~x0

echo %~s0

echo %~a0

echo %~t0

echo %~z0

再运行cmd,输入 c:/test.bat "/a" /b /c /d可以参照 call/? 或 for/? 看出每个参数的含意,注意这里可以对文件进行日期比较和大小比较:

echo load "%%1" "%%2">c:/test.txt

生成的文件内容为 load "%1" "%2"批处理文件里,用这个格式把命令行参数输出到文件


If


判断命令


if "%1"=="/a" echo 第一个参数是/a

if /i "%1" equ "/a" echo 第一个参数是/a

/i 表示不区分大小写,equ 和 == 是一样的,其它运算符参见 if/?

if exist c:test.bat echo 存在c:test.bat文件

if not exist c:windows (

echo 不存在c:windows文件夹

)

if exist c:test.bat (

echo 存在c:test.bat

) else (

echo 不存在c:test.bat

)


setlocal 和 endlocal


设置"命令扩展名"和"延缓环境变量扩充"


SETLOCAL ENABLEEXTENSIONS #启用"命令扩展名"

SETLOCAL DISABLEEXTENSIONS #停用"命令扩展名"

SETLOCAL ENABLEDELAYEDEXPANSION #启用"延缓环境变量扩充"

SETLOCAL DISABLEDELAYEDEXPANSION #停用"延缓环境变量扩充"

ENDLOCAL #恢复到使用SETLOCAL语句以前的状态

"命令扩展名"默认为启用

"延缓环境变量扩充"默认为停用

批处理结束系统会自动恢复默认值

可以修改注册表以禁用"命令扩展名",详见 cmd /? 。所以用到"命令扩展名"的程

序,建议在开头和结尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 语句,以确

保程序能在其它系统上正确运行

"延缓环境变量扩充"主要用于 if 和 for 的符合语句,在 set 的说明里有其实用例程


for


循环命令这个比较复杂,请对照 for/? 来看


for %%i in (c: d: e: f:) do echo %%i

依次调用小括号里的每个字符串,执行 do 后面的命令

注意%%i,在批处理中 for 语句调用参数用2个%

默认的字符串分隔符是"空格键","Tab键","回车键"

for %%i in (*.txt) do find "abc" %%i

对当前目录里所有的txt文件执行 find 命令

for /r . %%i in (*.txt) do find "abc" %%i

在当前目录和子目录里所有的.txt文件中搜索包含 abc 字符串的行

for /r . %%i in (.) do echo %%~pni

显示当前目录名和所有子目录名,包括路径,不包括盘符

for /r d:mp3 %%i in (*.mp3) do echo %%i>>d:mp3.txt

把 d:mp3 及其子目录里的mp3文件的文件名都存到 d:mp3.txt 里去

for /l %%i in (2,1,8) do echo %%i

生成2345678的一串数字,2是数字序列的开头,8是结尾,1表示每次加1

for /f %%i in (‘set‘) do echo %%i

对 set 命令的输出结果循环调用,每行一个

for /f "eol=P" %%i in (‘set‘) do echo %%i

取 set 命令的输出结果,忽略以 P 开头的那几行

for /f %%i in (d:mp3.txt) do echo %%i

显示 d:mp3.txt 里的每个文件名,每行一个,不支持带空格的名称

for /f "delims=" %%i in (d:mp3.txt) do echo %%i

显示 d:mp3.txt 里的每个文件名,每行一个,支持带空格的名称

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


Xcopy


(外部命令)文件拷贝


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

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

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

Set使用

set显示、设置或删除变量。

显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。

设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。

如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。

删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令为实质意义。

需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。

set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。


Set


设置变量


引用变量可在变量名前后加 % ,即 %变量名%

set #显示目前所有可用的变量,包括系统变量和自定义的变量

echo %SystemDrive% #显示系统盘盘符。系统变量可以直接引用

set p #显示所有以p开头的变量,要是一个也没有就设errorlevel=1

set p=aa1bb1aa2bb2 #设置变量p,并赋值为 = 后面的字符串,即aa1bb1aa2bb2

echo %p% #显示变量p代表的字符串,即aa1bb1aa2bb2

echo %p:~6% #显示变量p中第6个字符以后的所有字符,即aa2bb2

echo %p:~6,3% #显示第6个字符以后的3个字符,即aa2

echo %p:~0,3% #显示前3个字符,即aa1

echo %p:~-2% #显示最后面的2个字符,即b2

echo %p:~0,-2% #显示除了最后2个字符以外的其它字符,即aa1bb1aa2b

echo %p:aa=c% #用c替换变量p中所有的aa,即显示c1bb1c2bb2

echo %p:aa=% #将变量p中的所有aa字符串置换为空,即显示1bb12bb2

echo %p:*bb=c% #第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2

set p=%p:*bb=c% #设置变量p,赋值为 %p:*bb=c% ,即c1aa2bb2

set /a p=39 #设置p为数值型变量,值为39

set /a p=39/10 #支持运算符,有小数时用去尾法,39/10=3.9,去尾得3,p=3set /a p=p/10

#用 /a 参数时,在 = 后面的变量可以不加%直接引用set /a p="1&0"

#"与"运算,要加引号。其它支持的运算符参见set/?

set p= #取消p变量

set /p p= 请输入屏幕上显示"请输入",并会将输入的字符串赋值给变量p注意这条可以用来取代 choice 命令

注意变量在 if 和 for 的复合语句里是一次性全部替换的,如

@echo off

set p=aaa

if %p%==aaa (

echo %p%

set p=bbb

echo %p% )

结果将显示aaaaaa因为在读取 if 语句时已经将所有 %p% 替换为aaa这里的"替换",在 /? 帮助里就是指"扩充"、"环境变量扩充"可以启用"延缓环境变量扩充",用 ! 来引用变量,即!变量名!

@echo off

SETLOCAL ENABLEDELAYEDEXPANSION

set p=aaaif %p%==aaa (

echo %p%

set p=bbb

echo !p! )

ENDLOCAL

结果将显示aaabbb 还有几个动态变量,运行 set 看不到

%CD% #代表当前目录的字符串

%DATE% #当前日期

%TIME% #当前时间

%RANDOM% #随机整数,介于0~32767

%ERRORLEVEL% #当前ERRORLEVEL 值

%CMDEXTVERSION% #当前命令处理器扩展名版本号

%CMDCMDLINE% #调用命令处理器的原始命令行可以用echo命令查看每个变量值,如 echo %time%

注意 %time%精确到毫秒,在批处理需要延时处理时可以用到

start批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令

start explorer d:/调用图形界面打开D盘

@echo off

cd /d %~dp0

regedit /s 劲舞团.reg

start patcher.exe

不加 start 命令的话,"劲舞团"运行时,后面会有个黑乎乎的cmd窗口

call批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行有时有的应用程序用start调用出错的,也可以call调用

choice


choice


choice (外部命令)选择命令让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234……

win98里是choice.com,win2000pro里没有,可以从win98里拷过来,win2003里是choice.exe

choice /N /C y /T 5 /D y>nul延时5秒

下面是个 choice 语句的例子

@echo off

rem 以下在win2000pro运行通过,从win98里拷的chioce.com文件

choice /c:abc aaa,bbb,ccc

if errorlevel 3 goto ccc

if %errorlevel%==2 goto bbb

if errorlevel==1 goto aaa

rem 必须先判断数值高的返回码rem 可以看到 errorlevel 值的判断有3种写法,有时某种写法不好用,可以用另外的写法

rem 直接运行

chioce相当于运行

choice /c:yn:aaa

echo aaa

goto end

:bbb

echo bbb

goto end

:ccc

echo ccc

goto end

:end

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 的正确关联

如果该关联已经被破坏,可以运行 command.com ,再输入这条命令

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一般用处不大,在当前目录名不确定时,会有点帮助

subst (外部命令)映射磁盘。

subst z: //server/d #这样输入z:就可以访问//server/d了

subst z: /d #取消该映射

subst #显示目前所有的映

xcopy (外部命令)文件拷贝

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

复制 d:/mp3 文件夹、所有子文件夹和文件到 e:/,覆盖已有文件,加 /i 表示如果 e:/ 没有 mp3 文件夹就自动新建一个,否则会有询问

一些不常用的内部命令

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

<& 从一个句柄读取输入并将其写入到另一个句柄输出中

shift 命令行传递给批处理的参数不止9个时,用以切换参数

color 设置cmd窗口的显示颜色

pormpt 更改命令提示符号,默认都是 盘符:/路径/> ,如 c:/>

format (外部命令)格式化硬盘

format c: /q/u/autotest/,q表示快速格式化,/autotest表示自动格式化,不需要按 Y 确认,/u表示每字节用F6覆盖硬盘数据,使其不可用软件恢复

format c: /c格式化C盘,并检测坏道

fdisk (外部命令)硬盘分区win2000不带该命令win98里的fdisk不支持80G以上大硬盘,winme里的支持fdisk/mbr重建硬盘分区表,一般用于清除引导区病毒、还原精灵注意使用该命令不能从硬盘启动,必须软驱或光驱启动后直接运行

ping (外部命令)

ping -l 65500 -t 192.168.1.200不停的向192.168.1.200计算机发送大小为65500byte的数据包

ping -n 10 127.0.0.1>nulping自己10次,可用于批处理延时10秒

SC (外部命令)服务控制命令

sc create aaa displayname= bbb start= auto binpath= "C:/WINDOWS/System32/alg.exe"创建服务,服务名称aaa,显示名称bbb,启动类型:自动可执行文件的路径"C:/WINDOWS/System32/alg.exe"

sc description aaa "ccc"更改aaa的描述为ccc

sc config aaa start= disabled binpath= "C:/WINDOWS/System32/svchost.exe -k netsvcs"更改aaa的启动类型:已禁用更改aaa的可执行文件的路径"C:/WINDOWS/System32/svchost.exe -k netsvcs"

sc config aaa start= demand displayname= ddd更改aaa的启动类型:手动更改aaa的显示名称ddd

sc start aaa启动aaa服务

sc stop aaa停止aaa服务

sc delete aaa删除aaa服务

原文地址:https://www.cnblogs.com/BaiPao-XD/p/9763915.html

时间: 2024-10-28 23:36:16

(整理)批处理的相关文章

批处理-整理

批处理中的特殊字符符号 批处理中的算术符号 批处理支持数值类型的表示,同样支持数值类型的运算处理,当然批处理比较弱智,只支持整数类型的数值的算术运算,不仅支持基本的数学算术运算,还支持高级的算术运算 dos命令说明 echo 和 @ 回显命令 @                     #关闭单行回显 echo off              #从下一行开始关闭回显 @echo off             #从本行开始关闭回显.一般批处理第一行都是这个 echo on          

机器学习 —— 基础整理(六):线性判别函数——感知器、松弛算法、Ho-Kashyap算法

本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 (一)线性判别函数与广义线性判别函数 一.线性判别函数 这篇总结继续关注分类问题.假设判别函数(Discriminant function)的参数形式已知,用训练的方法直接根据样本估计判别函数的参数.线性判别函数的形式为: $$g(\textbf x)=\textbf w^{\top}\textbf x+w_0$$ $\textbf x\in \mathbb R^d$ 是

GitHub上整理的一些工具

GitHub上整理的一些工具 GitHub   2015-11-19 10:10:47 发布 您的评价:       0.0   收藏     5收藏 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应用,关注软件开发领域 OSChina:开源技术社区,开源方面做的不错哦 cnblogs,51cto,csdn:常见的技术社区,各有专长 stackoverflow:IT

批处理之批量修改目录名

今天因为测试需要,要把一百多个case进行重命名,当然内容和case名相对应的也要改,不过之前有同事已经做过这部分的自动化处理,可以用java实现.那么现在问题就是如何把这一百多个case重命名了. 要手动,也挺快,一百多个. 可是,有必要吗? 重命名是有命令的,ren a b 而且case本身和重命名后都是按规律排序的,于是想到用批处理命令来实现. 首先,写第一条命令 ren case001 test001 其次,将这条命令扩充至100.当然最简单的办法就是在excel里,做成三列,往下拖拽即

Deep Learning(深度学习)学习笔记整理系列之(八)

Deep Learning(深度学习)学习笔记整理系列 [email protected] http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04-08 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主

T-SQL:GO语句和批处理(更新ing)

自己的理解:用GO隔开,就相当于在不同的查询窗口里执行SQL,GO需要单独提交事务的 整理时参考博文: http://www.cnblogs.com/kissdodog/p/3163880.html http://lockrock.blog.51cto.com/2147255/775783 批处理是作为一个逻辑单元的T-SQL语句.完整的批处理当中,如果第一条语句不能通过语法分析,那么不会运行任何语句.语句会顺序执行,如果执行过程中发现一条语句存在错误,那么会在运行时报错,但在产生错误的语句之前

VMware11安装OS X10.10和xcode整理

个人PC是win7 64位系统,对于一个打算学习高大上的iOS开发的穷B来说,使用VMware虚拟机安装OS X镜像系统是最佳的选择.网上搜了很多关于这方面的资料,大都比较老了,一般以使用VMware7或者8安装OS X10.7系统为主,Xcode也是只能支持4.2,经过多番尝试和填坑,最终将整个过程整理到此. 一.安装VMware Workstation 11 VMware是最新的版本,做了很多优化和调整,用起来感觉很不错.这个软件的安装直接百度就有很多最新下载源,而且还附带有破解码.安装完成

DOS批处理高级教程

转载-->http://blog.csdn.net/lanbing510/article/details/7461073 前言 本教程主要引用伤脑筋版主的系列文章,同时参考引用[英雄]教程等其他批处理教程,本文将这些文章合并在一起,并尽量修改得详细而且简单易懂,修改整理也是学习过程,主要目的是方便自己以后查阅.    本教程很长啊,需要一定的耐心才能看完,能够看完的话,差不多就是批处理高手了,即使不是高手也是熟手了.本教程还在不断补充之中,当有比较典型的应用技巧时,本教材会将其收入相关的章节之中

对Verilog 初学者比较有用的整理(转自它处)

对Verilog 初学者比较有用的整理(转自它处) ******************************************************************************************************************** *作者: Ian11122840    时间: 2010-9-27 09:04