Board logo

标题: [原创] 《批处理入门手册》一.1.1 批处理常用DOS命令篇 [打印本页]

作者: januapr    时间: 2009-8-22 11:58     标题: 《批处理入门手册》一.1.1 批处理常用DOS命令篇

  虽然本论坛有大量的批处理教程资料,但并没有比较系统全面的教程,因此新手入门将花费大量的时间和精力去查找、搜索,当搜索到一大堆教程时,却迷惘不知从何入手!于是本人就想着手收集整理一些教程,让自己在学习的过程中也能帮助一下新手。

   《批处理入门手册》系列,是本人学习批处理时收集整理的一些资料,在此献给新手们,希望能帮到如我这般的菜鸟!哈哈~


下一篇:一.1.2 批处理常用DOS命令篇


《批处理入门手册》
一.   批处理常用DOS命令篇
----------------------------------------------------------------------------------------------------------------------
1.1   学习 echo  rem  cd  dir 命令

学习要点:
1,显示信息:echo
2,注释语句:rem
3,目录切换:cd
4,列文件名:dir

----------------------------------------------------------------------------------------------------------------------


一,显示信息:echo


   在学习echo命令前我们先在C盘下建一个新文件夹bat,并建一个空的bat文件。例如我是的mybat.bat。好了,下面我们开始《批处理入门手册》的第一章1.1节。

1。输出提示信息
格式:echo 你要输出的信息

我们来编辑mybat.bat,内容如下:
1,
echo hello,world
echo i will come back
pause


执行显示:
C:\bat>echo hello,world
hello,world
C:\bat>echo i will come back
i will come back
C:\bat>pause
请按任意键继续. . .


我们写的批处理,能不能不让它显示我们到底写了什么命令?OK!那我们就来学习echo的第二个命令!

2。关闭该命令的回显
格式:@ 放在命令前面


2,
@echo hello,world
@echo i will come back

pause

执行显示:
hello,world
i will come back
C:\bat>pause
请按任意键继续. . .


如果有多条命令的话,要是每一条都加上一个@的话,那有多累呀!!能不能来个全部的?好,我们来看下面的!

3。打开回显或关闭回显功能
格式:echo [{ on|off }]

解释一下,如果在批处命令前加上echo off,那么将会关闭批处中的命令回显。当然啦,你要是不想显示echo off 命令本身,你可以在echo off前加@
3,
@echo off
echo hello,world
echo i will come back
pause

执行显示:
hello,world
i will come back
请按任意键继续. . .

也就是说在批处理前加上@echo off ,它将使所有命令不再显示命令本身,当然也包括了echo off 命令本身也不会回显了。

4。输出空行,即相当于输入一个回车
格式:echo.

注意的是命令行中的“.”要紧跟在ECHO后面中间不能有空格,否则“.”将被当作提示信息输出到屏幕。另外“.”可以用,:;”/]\ 这些任一符号替代。
4,
@echo off
echo 我在写批处理教程哦!
echo.
echo 你看到上面有空一行么?
pause


执行显示:
我在写批处理教程哦!

你看到上面有空一行么?
请按任意键继续. . .


    命令ECHO.输出的回车,经DOS管道转向可以作为其它命令的输入,比如echo.|time即相当于在TIME命令执行后给出一个回车。所以执行时系统会在显示当前时间后,自动返回到DOS提示符状态。
作者: januapr    时间: 2009-8-22 11:59

5。答复命令中的提问
格式:ECHO 回复|命令表达式

作用:通过管道命令 | 把“回复”作为输入传导给后面的“命令表达式”,并作为“命令表达式”的输入。(注意,管道命令|的输入方法,shift+ \ 这个我以前都不知的,呵呵!)
5
@echo off
rd /s c:\abc
pause

执行显示:
c:\abc, 是否确认(Y/N)?

解释一下,这里abc是一个不为空的文件夹,用rd 命令删除时它将会询问你YN,这时你就要手动的输入Y/N了。OK,我们把批处改一下
6,
@echo off
echo Y|rd /s c:\abc
pause

这时系统将会自动帮助我们把Y输入确认了。

6。建立新文件或增加文件内容
格式:echo 文件内容>文件名

7,
@echo off
echo 123>myfile.txt
pause


这样我们就在当前目录下建立了一个myfile.txt文件,文件的内容为123  如果你想要建立一个空的新文件,那你可以试一下这个
8,
@echo off
echo. >myfile.txt
pause

注:上面所有实例中的pause是暂停命令,主要是用来暂停演示给大家看的,哈哈!!


二,注释语句:rem

rem 为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。
1,
@echo off
echo 这是例1哦!
rem 上面的echo 语句用于显示提示。
pause


另外 :: 也可以起到 rem 的注释作用,而且更简洁有效;但有两点需要注意:
第一,
任何以冒号:开头的字符行,在批处理中都被视作标号,而直接忽略其后的所有内容。
有效标号:冒号后紧跟一个以字母数字开头的字符串,goto 语句可以识别。

无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto 无法识别的标号,可以起到注释作用,所以 :: 常被用作注释符号,其实 :+ 也可起注释作用。
2,
@echo off
echo 这是例2哦!
::上面的echo 语句用于显示提示。
pause

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



[ 本帖最后由 januapr 于 2009-8-23 15:09 编辑 ]
作者: januapr    时间: 2009-8-22 12:01

三,目录切换:cd

1,同一个分区的切换
目录切换格式:格式:CD [盘符][路径]


如果当前目录是C:\Documents and Settings\mzybar,我们要切换到同一分区下不同的目录,请看下面的例子。(注:下面例子中的>表示命令行下的提示符,>前面的表示当前目录。)
1,
切换到C:\WINDOWS目录
C:\Documents and Settings\mzybar>
cd C:\WINDOWS
C:\WINDOWS>


2,
切换到C:\WINDOWS\system32目录
C:\Documents and Settings\mzybar>
cd C:\WINDOWS\system32
C:\WINDOWS\system32>


如果当前目录是C:\WINDOWS\system3,我们要返回到上一层目录,即返回到C:\WINDOWS时,我们可以这样:
3,
C:\WINDOWS\system32>
cd..
C:\WINDOWS>

在这里,cd..是不是简单了很多?呵呵!当然了,你也可以cd C:\WINDOWS

如果当前目录是C:\WINDOWS\system3,我们要返回根目录,即返回到C:\时,你可以试下这个:
4,
C:\WINDOWS\system32>
cd\
C:\ >

在这里返回根目录时,我们用的是cd\命令,当然你也是可以cd c:\

其实在DOS命令中...\都是表示相对路径的,.是当前目录,..是上一层目录,而\则表示根目录。

我们来试下cd.
5,
C:\WINDOWS\system32>
cd.
C:\WINDOWS\system32>

看到了吧,输入cd.后还是在原来的位置,因为 是当前目录,切换到当前目录当然没有变罗。

2,不同分区的切换
格式:格式:CD /d [盘符][路径]

如果当前目录是C:\Documents and Settings\mzybar,我们需要切换到其它分区目录,请看:
6,
切换到D:\123\abc
C:\Documents and Settings\mzybar>
cd /d d:\123\abc
D:\123\abc>


如果我们要切换到D盘的根目录,则有更简单的方法,请看:
7,
C:\Documents and Settings\mzybar>
D:
D:\>

在这里,我们直接输入驱动器号+冒号,就可以切换到它的根目录。

CD 的另一个用途:显示当前的完整路径,一般用通过 %cd% 加以引用
8,
@echo off
echo 当前路径是 %cd%
pause


执行显示的是当前的完整路径。

[ 本帖最后由 januapr 于 2009-8-23 08:29 编辑 ]
作者: januapr    时间: 2009-8-22 12:05

四,列文件名:dir

显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]] [/C] [/D] [/L] [/N]

[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]


[drive:][path][filename]
  指定要列出的驱动器、目录和/或文件。


/A
显示具有指定属性的文件。

attributes
D
目录
R
只读文件
H 隐藏文件
A
准备存档的文件
S 系统文件
-
表示“否”的前缀

/B
使用空格式(没有标题信息或摘要)

/C
在文件大小中显示千位数分隔符。这是默认值。用 /-C 停用分隔符显示。

/D
跟宽式相同,但文件是按栏分类列出的。

/L
用小写。

/N
新的长列表格式,其中文件名在最右边。

/O
用分类顺序列出文件。

sortorder
N
按名称(字母顺序)
S
按大小(从小到大)
E 按扩展名(字母顺序)
D
按日期/时间(从先到后)
G 组目录优先
-
颠倒顺序的前缀

/P
在每个信息屏幕后暂停。

/Q
显示文件所有者。

/S
显示指定目录和所有子目录中的文件。

/T
控制显示或用来分类的时间字符域。

timefield
C
创建时间

A
上次访问时间

W
上次写入的时间

/W
用宽列表格式。

/X
显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,短名称插在长名称前面。如果没有短名称,在其位置则显示空白。

/4
用四位数字显示年

关于dir命令比较多,看到上面一大堆的参数头都晕了,呵呵~ 在这里我们学习一些常用的就OK~


1,列出c:\windows下的目录及文件
格式:DIR [drive:][path][filename]

1,
dir c:\windows

这种方法有明显的缺点——当列表中的目录及文件过多时就无法完全显示,我们将通过/p参数解决这个问题。

/P 在每个信息屏幕后暂停。
2,
dir /p c:\windows

我们在命令最后加上一个参数“/p”(“page”页的缩写),列文件时就会使用分页显示方式,即列出一屏的目录及文件后,提示按任意键继续...”,按任意键后则显示下一屏。这样就可以逐屏查看了!

/B 使用空格式(没有标题信息或摘要)
3,
dir /b c:\

我们在查看时,发现列出来的文件都带有日期,时间,创建者等信息,我们可以在命令后加上/b参数,让它只列出文件名称。

2,列出c:\指定属性的文件
格式:DIR /a: attributes (这里的:号可以省略)

attributes
D
目录
R
只读文件
H 隐藏文件
A
准备存档的文件
S 系统文件
-
表示“否”的前缀

1,
dir /a c:\

列出C:\下所有的文件。

2,
dir /ah c:\

列出隐含的文件(包含文件和文件夹)

3,
dir /ad c:\
列出C:\下所有的文件夹。

4,
dir /ad-h c:\

列出C:\下所有的文件夹,但不包含隐含的文件夹。

3,按分类列出c:\的文件
格式:DIR /o: sortorder (这里的:号可以省略)

sortorder
N
按名称(字母顺序)
S
按大小(从小到大)

E
按扩展名(字母顺序)
D
按日期/时间(从先到后)

G
组目录优先
-
颠倒顺序的前缀

1,
dir /on c:\
/o:排序方式 参数指定了dir命令显示命令结果时的排序方式,排序方式设为“n”即代表按照文件名的字母顺序排列(从A~Z,以此类推)。

例2,dir /ogn c:\
优先列出文件夹,并且文件夹和文件都按字母顺序排列。

★“/o”和“/a”都可以省略其后的冒号“:”,但之间不能留有空格。如“/o:n”省略后的形式应为“/on”。



Januapr 编辑整理于2009-08-14星期五23:11

[ 本帖最后由 januapr 于 2009-8-22 21:39 编辑 ]
作者: bppc888    时间: 2009-8-23 02:56

好非常好。学习了。呵呵,我是新手来的。不过还有很多语句不明白意思。如果是一个一个拆开学就好了。呵呵
作者: canyuexiaolang    时间: 2009-8-23 07:20

  1. @echo off
  2. echo Y|rd /s c:\abc
  3. pause
复制代码
  1. 管道命令|的输入方法,shift键+ \
复制代码
解决了我的2个难题,1是管道命令是什么意思,2是怎么打出管道命令
作者: canyuexiaolang    时间: 2009-8-23 07:28

  1. 例1,
  2. 切换到C:\WINDOWS目录
  3. C:\Documents and Settings\mzybar>
  4. cd C:\WINDOWS
  5. C:\WINDOWS>
  6. 例2,
  7. 切换到C:\WINDOWS\system32目录
  8. C:\Documents and Settings\mzybar>
  9. cd C:\WINDOWS\system32
  10. C:\WINDOWS\system32>
  11. 如果当前目录是C:\WINDOWS\system3,我们要返回到上一层目录,即返回到C:\WINDOWS时,我们可以这样:
  12. 例3,
  13. C:\WINDOWS\system32>
  14. cd..
  15. C:\WINDOWS>
复制代码
提示命令语法不正确
Why?
作者: januapr    时间: 2009-8-23 08:36     标题: 回复 7楼 的帖子

请问一下在CD命令中,是例几提示命令语法不正确呢?
上面的例1,例2中多了一行空行是编辑时没有注意到的,现在编辑改正了。
例3中cd..     后面是英文状态下的两个点。
作者: sunxh    时间: 2009-8-23 20:16

收藏备用!谢谢!!!
作者: canyuexiaolang    时间: 2009-8-24 17:22

天哪。。难怪。。我就试了2个(— —)~
作者: chenyu881217    时间: 2009-8-28 15:54

学习了!支持一个!
作者: yylautumn    时间: 2009-8-29 09:45

楼主辛苦了!
谢谢!
作者: daliang500    时间: 2009-9-14 20:56

好好学习,很有用处的!
作者: bob9950    时间: 2009-9-16 11:03

表达清楚,通欲易懂,比一些自称专家的人写的云山雾罩强多了,是你自己写的吗?
作者: hy55310    时间: 2009-12-4 11:34

表达清楚,通欲易懂我学起容易多了
作者: caimingbing    时间: 2009-12-10 17:37

这个贴子,真好,俺喜欢
作者: fish509008    时间: 2013-12-9 11:07

通俗易懂!好教程,对我这样的初学者来说太合适了。
作者: zk_0701    时间: 2013-12-13 21:34

写的清楚明白,排版也很舒服。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2