dos命令以及bat批处理学习
Windows批处理:
DOS(Disk Operating System)是⼀个使⽤得⼗分⼴泛的磁盘操作系统,就连⽬前流⾏的Windows9x/ME系统都是以它为基础。他
的每⼀⾏可视为⼀个命令,每个命令⾥可以含多条⼦命令,从第⼀⾏开始执⾏,直到最后⼀⾏结束,它运⾏的平台是DOS。
内部命令,是指在DOS启动之后,⾃⼰主动通过command⽂件导⼊内存的命令。
在执⾏这些命令的时候,直接从内存进⾏调⽤………
1)dir--显⽰指定路径上全部⽂件或⽂件夹的信息
它的格式为"dir [盘符:][路径][⽂件名称] [參数]",⽐⽅"DIR E:\FF.M3U"。
2)md(mkdir)--建⽴⽂件夹
它的格式为"md [盘符][路径]"。⽐如"MD TEMP"。
3)rd(rmdir)--删除⽂件夹
格式为"RD [盘符][路径]"。
注意:该命令仅仅能删除空⽂件夹。⽽且不能删除当前⽂件夹。
4)cd--进⼊指定⽂件夹
格式为" CD [路径]"。⽐如"CD HAPPY"。
注意:仅仅能进⼊当前盘符中的⽂件夹。
当中"CD\"为回到根⽂件夹,"CD.."为回到上⼀层⽂件夹。
5)copy--复制⽂件
格式为"COPY [源⽂件夹或⽂件] [⽬的⽂件夹或⽂件]",⽐⽅"COPY C:\*.COM D:\"
注意:使⽤该命令进⾏⽂件拷贝时,⽬的⽂件夹⼀定要存在。
6)del--删除⽂件
格式为"DEL [盘符][路径][⽂件名称] [參数]",⽐⽅"DEL C:\DATA\*.BAK"。它有⼀个參数:"/P"。能够使⽤户在删除多个⽂件时对每⼀个⽂件都显⽰删除询问
7)ren(rename)--改名
格式为"REN [原名] [现名]",7.0以后版本号的DOS都⽀持对⽂件名称和⽂件夹名的改动,⽽曾经的DOS仅仅能改动⽂件名称。
8)type--显⽰⽂本⽂件
格式为"TYPE [⽂件名称]",能对⽂本⽂件进⾏查看。
9) discopy--磁盘复制
[功能] 复制出⼀个和原来磁盘内容⼀模⼀样的磁盘
批处理文件注释[格式] diskcopy 源驱动器名 ⽬的驱动器名
[说明] 它的主要⽤途就是⽤来备份。
10) deltree--删除⽂件夹树
[格式] [C:][path]DELTREE [C1:][path1] [[C2:][path2] […]]
[说明] 这个命令将整个指定⽂件夹树全部消灭,⽽⽆论它是否是仅仅读、隐藏与否。
11) mem--查看你的计算机内存有多少,以及内存的使⽤情况。
[格式] mem
12) chkdsk--检查你的磁盘的使⽤情况。
[格式] chkdsk 磁盘名
[说明] ⽐如要检查A盘使⽤情况。就输⼊chkdsk A: ,检查c盘使⽤情况,就输⼊chkdsk C: 。假设直接输⼊chkdsk,就检查当前磁盘的使⽤情况。
13) sys--传递系统⽂件命令。
将DOS的两个隐含的系统IO.SYS和MSDOS.SYS传送到⽬标磁盘的特定位置上,并将COMMAND.COM⽂件复制过去。完毕后。⽬标盘成为DOS的启动盘。
[格式] [C:][path]SYS [C1:][path] d2:
[说明] 因为这⼏个⽂件须要拷贝到特定位置上,所以⽤COPY命令完毕的复制未必能够启动机器。
能过SYS命令。DOS能够将⽬标盘已占领特定位置的⽂件移动。并将系统⽂件拷贝到对应位置上。
參数C1:path⽤来指明系统⽂件所在⽂件夹。如不指明,则缺省为当前盘的当前⽂件夹。所以这个命令⼀般要在源盘的根⽂件夹进⾏。
14) pass--设定DOS寻.COM、.EXE、.BAT⽂件的所在⽂件夹
[格式] path=[[drive:]path[;…]]或path
[说明] 仅仅打path没有參数时,仅仅显⽰环境变量内容。
有參数时,⼜⼀次设置path变量。在没有指定path环境变量时。⽤户发出的命令,DOS⾸先判断其是否为内部命令,再查当前⽂件夹中是否有主⽂件名称是该命令的可执⾏⽂件。假设均不是,则显⽰信息“Bad command or filename”。假设发出了指定路径的命令,则在指定径中依次查,仍不到则出现上述提⽰。
15) cls--清除显⽰器屏幕上的内容。使DOS提⽰符到屏幕左上⾓。
[格式] cls
16) time--显⽰和设置DOS的系统时间
[格式] time [hh[:mm[:ss[.cc]]]
17) date--显⽰和设置DOS的系统⽇期
[格式] date [MM-DD-YY]
18) ver--显⽰正在执⾏的DOS系统版本号号
FORMAT(Format.COM)--格式化命令
FORMAT命令能够完毕对软盘和硬盘的格式化操作
格式为"FORMAT [盘符] [參数]",⽐如:"FORMAT A: /S"。
它有两个常见的參数:
/Q:进⾏⾼速格式化;
/S:完毕格式化,并将系统引导⽂件拷贝到该磁盘。
注意:该命令会清除⽬的磁盘上的全部数据,⼀定要⼩⼼使⽤。假设进⾏了普通的格式化。那磁盘上的数据还有可能恢复。但假设加上了"/Q"。那要恢复就⽐蹬天还难了。
convert转换磁盘格式:
convert f:/FS:NTFS 把F盘转换为NTFS格式。或者为fat32格式
SCANDISK(Scandisk.EXE)--磁盘扫描程序
这个命令在实际的操作中有⾮常⼤的⽤处,它能对磁盘进⾏扫描并修复,能够解决⼤部分的磁盘⽂件损坏问题。
格式为"SCANDISK [盘符:] [參数]"以下是它的⼏个參数:
/fragment[驱动器名:\路径\⽂件名称]:使⽤这个參数能够显⽰⽂件是否包括有间断的块,我们能够通过执⾏磁盘整理程序来解决这个问题;
/all:检查并修复全部的本地驱动器;
/autofix:⾃⼰主动修复错误。即在修复时不会出现提⽰;
/
checkonly:仅仅检查磁盘。并不修复错误。
/custom:依据Scandisk.ini⽂件的内容来执⾏Scandisk,Scandisk.ini是⼀个⽂本⽂件,它包括了对Scandisk程序的设置。当中的[custom]块是在加上"/custom"參数后才执⾏的,⽤户能够依据⾃⼰的不同情况来进⾏不同的设置;
/nosave:在检查出有丢失簇后直接删除,并不转化为⽂件;
/nosummary:不显⽰检查概要,完毕检查后将直接退出程序;
/surface:在完毕初步检查后进⾏磁盘表⾯扫描;
/mono:以单⾊形式执⾏Scandisk。
MOVE(Move.EXE)--⽂件移动命令,使⽤它能够对⽂件进⾏移动。
格式为"MOVE [源⽂件] [⽬的路径]"。
在bat命令执⾏后想不关闭窗⼝时可以在bat命令中启动另⼀个bat则另⼀个bat的窗⼝不会消失,例如在a.batz中添加start b..bat,然后这个新的bat是不会⾃动关闭的,或者执⾏重新开启⼀个新的命令⾏窗⼝
bat命令中脚本:
ECHO命令是⼤家都熟悉的DOS批处理命令的⼀条⼦命令:
不加@时,
在运⾏时,会在窗⼝显⽰出这条命令⽽加了@, 只会显⽰出 echo后⾯你要显⽰出的东西。
例如:
echo abc
会显⽰:
echo abc
abc
⽽:
@echo abc
会显⽰:
abc
Pause命令会提⽰按任意键继续,当⽤户按任意键之后会继续执⾏后续操作
Call和start都是启动另⼀个bat⽂件,但是call是在本窗⼝继续执⾏另⼀个bat中的命令,start会启动⼀个新的窗⼝执⾏另⼀个bat的命令,执⾏完之后窗⼝不消失。Call abc.BAT
set /p a=promptstring 命令详解:先显⽰promptstring,再接受⽤户输⼊的内容,以回车表⽰结束,赋值给变量a,另外%%是变量引⽤符,中间的值位变量
set/p a=请输⼊第⼀个参数并按回车:
echo %a%
Title设置控制台BAT的标题
:和goto
goto是个跳转命令,:是⼀个标签,当程序运⾏到goto时,将⾃动跳转到:定义的部分去执⾏了:
……
Goto end
……
:end
If
输⼊判断: if %a%==”” goto usage
存在判断:
if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif
管道命令 |、>、>>、>、>&、<&
|命令的作⽤,就是让前⼀命令的输出当做后⼀命令的输⼊:
>会清除掉原有⽂件中的内容后把新的内容写⼊原⽂件: echo @echo off > a.bat
>>只会另起⼀⾏追加新的内容到原⽂件中,⽽不会改动其中的原有内容:
echo exit >> a.bat
组合命令:&、&&、||
&命令作⽤是⽤来连接n个DOS命令,并把这些命令按顺序执⾏,⽽不管是否有命令执⾏失败:
b.txt /y &
&&可以把它前后两个命令组合起来当⼀个命令来⽤,⼀旦发现有命令出错将不继续执⾏剩下的命
||命令执⾏正确就退出此命令组合,不再执⾏剩下的命令:
dir s*.exe || echo Didn't exist file s*.exe & pause & exit
;
分号,当命令相同时,可以将不同⽬标⽤;来隔离,但执⾏效果不变,如执⾏过程中发⽣错误,则只返回错误报告,但程序仍会执⾏。
dir c:\;d:\;e:\;z:\ > 1.txt
,
逗号相当于空格,在某些情况下“,”可以⽤来当做空格使⽤:
dir,C:\
“”
⼩括号在批处理编程中有特殊的作⽤,左右括号必须成对使⽤,括号中可以包括多⾏命令,这些命令将被看成⼀个整体,视为⼀条命令⾏。(echo a && echo bb) > 1.txt
!在变量延迟问题中,⽤来表⽰变量,即%var%应该表⽰为!var!
Set /p input=请输⼊: & echo 你输⼊的是:!input!
f…else…条件语句
DOS条件语句主要有以下形式
if⽤于条件判断,适⽤于以下情形:
1、判断驱动器、⽂件或⽂件夹是否存在,⽤ if exist 语句;
2、判断某两个字符串是否相等,⽤ if "字符串1"=="字符串2" 语句;
3、判断某两个数值是否相等,⽤ if 数值1 equ 数值2 语句;
4、判断某个变量是否已经被赋值,⽤ if defined str 语句;
if语句的完整格式是这样的:if 条件表达式 (语句1) else (语句2),它的含义是:如果条件表达式成⽴,那么,就执⾏语句1,否则,将执⾏语句2。
对于以上四种情形,可以分别使⽤如下代码:
1、if exist d:\ (echo D盘下有存在) else (echo D盘下不存在)
2、if "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)
3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)
4、if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)
判断字符串是否相等的时候,if会区分⼤⼩写,⽐如,单纯的if语句会认为字符串abc和字符串Abc不相同,若不想区分⼤⼩写,则需要添加 /i 开关,使⽤ if /i "字符串1"=="字符串2" 的格
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论