跳转至
命令 作用
dir 列文件名
cd 改变当前目录
ren 改变文件名
copy  拷贝文件
del  删除文件
md   建立子目录
rd  删除目录
deltree 删除目录树
format  格式化磁盘
edit 文本编辑
type 显示文件内容
mem  查看内存状况
help  显示帮助提示
cls  清屏
move  移动文件,改目录名
more  分屏显示
xcopy 拷贝目录和文件

使用

dir /?

help dir 

可以以上两条命令可查看官方文档

CD命令

跨磁盘操作时,需要先切换到改磁盘下,输入磁盘符号:即可,如输入D:,表示转到驱动器D盘下。

C:\Users\czm>d:

D:\>

然后就可以正常使用cd 目录这个命令,切换到你想要去的文件夹。

注意:cd 命令和linux下的cd 命令有所区别,使用的斜杠是\,linux下的是/

比如想切换到D:\小杨\个人学习,可以使用

D:\>cd D:\小杨\个人学习

D:\小杨\个人学习>

linux 下则是:

cd /media/ryze/d/小杨/个人学习
- -
cd . 表示当前文件夹
cd .. 表示上一级文件夹
cd |表示返回到该驱动器的顶级目录,即根目录

md命令

md "test my folder",在 D 盘创建一个名为 test my folder 的文件夹。

加双引号的目的是告诉计算机我们要创建一个名字中含有空格的文件夹,而不是分别创建名字分别为 test、my 和 folder 的 3 个不同的文件夹。

注:除了空格以外,在路径或文件名中含有 &()[]{}^=;!'+,`~ 特殊字符时也需要用双引号引用起来,以便机器能够正确地识别。

echo

echo Hello world>a.txt

遇到了一个新命令 echo ,它可以将某某内容显示出来。只考虑 echo Hello world 就是把字符串 Hello world 显示出来而已。后面使用了符号 > 表示将这句 Hello world 写入到某文件中。结果为:在 D:\test 文件夹里多了一个叫 a.txt 的文件,其内容为 Hello world 。

copy

copy 源文件 目标文件

ren

ren 源文件 新文件名

del

del *.txt,删除所有txt文件

rd

rd test "test my folder"

这一条命令是想同时移除 test 和 test my folder 这两个文件夹。不过结果并没有成功,因为它会提示:目录不是空的。test 文件夹中有 a.txt ,test my folder 文件夹中还有 d.bin ,因此文件夹删不掉。

rd test "test my folder" /s

如果加上 /s 这个参数后就能删除这两个文件夹以及其文件夹中所包含的所有内容了

第一个批处理

打开记事本,复制一下代码到其中,保存名为.bat的文件,双击打开即可看到这些命令全部被执行了。

::::::::::::::::::::::::::::::::
md "d:\test" "d:\test my folder"
echo Hello world>"d:\test\a.txt"
copy "d:\test\a.txt" "d:\test my folder"
copy "d:\test\a.txt" "d:\test my folder\b.txt"
copy "d:\test\a.txt" "d:\test my folder\c.bmp"
ren "d:\test my folder\c.bmp" d.bin
::::::::::::::::::::::::::::::::

显示相关的命令用法。先看一下 echo、@、pause、>、>>、title 、rem 这几个命令或符号的用法。

2.1 echo @ 和 pause

在DOS命令提示符中使用 echo /? 可以获得对 echo 用法的解释。echo on 用于打开命令的回显;echo off 用于关闭命令的回显(默认情况下,ehco 是处于打开状态的)。只输入 echo 可以获得当前的回显状态(是否处于打开状态)。输入 echo 再加一段文字,例如 echo Hello world! 可以显示出 Hello world! 这句信息。

@ ,如果在某一条命令最前面加上 @ ,那么这一行命令就不会显示出来。与 echo off 有着相似之处。 echo off 以后的所有命令本身都不再显示出来;而 @ 只是将当前那一行的命令不显示出来。然而,至于命令所产生的输出结果,仍然会显示出来。这看起来似乎有些拗口,但我们会通过例子来很容易地理解它们。

pause ,从字面上看就是暂停的意思,效果等同于将程序挂起,在按下任意键后才继续。

::::::::测试显示状态.bat::::::::
echo
pause

echo 例句一 此时回显为打开状态,因此前一句显示了命令行
@echo 例句二 此时回显虽然为打开状态,但命令前使用了@,因此未显示命令行本身
pause

echo off
echo
echo 例句三 此时回显为关闭状态,因此未显示命令行本身
@echo 例句四 此时回显为关闭状态且使用了@,因此未显示命令行本身
pause
::::::::::::::::::::::::::::::::

上面的这一段批处理测试,有效地展示了在使用 echo on 和 echo off ,以及在命令前加上 @ 符号后,命令行本身的显示效果。

2.2 > 和 >>

>表示将输出结果打印到某处。比如:echo Hello world!>d:\a.txt 表示将 Hello world! 这句话写入到 D:\a.txt 文件中。如果以前该文件中已经存在,并且有自己的内容,那么以前的内容就被覆盖掉了。比如我们再输入:echo yo, whats up>d:\a.txt ,那么文件 a.txt 中以前的 Hello world! 就变成了现在的新例句。

>>>类似,也可以将输出结果打印到某处。比如我们用 echo nothin much, and u?>>d:\a.txt 将例句写到 a.txt 里时,该例句并不会覆盖原有的 yo, whats up 这句话,而是加在了原句的后面。

如果一条命令后面跟上 >nul ,比如 pause>nul 表示将 pause 这条命令的输出显示到空设备里, nul 表示为空。用了 pause>nul 这条命令后,"按任意键继续..."的提示就不再出现了。

对比 echo off、@ 和 >nul 。echo off 表示这以后的所有命令的本身不再显示了,直到后面有 echo on 的出现。而加在命令行前面的 @ 只是让当前这一行命令不显示。加在命令行后面的 >nul 却可以让该命令的输出不显示。

2.3 title 和 rem

title 后面跟字符串可以改变当前命令提示符的标题名称。输入 title 这是新标题 后,该命令提示符左上角的标题名称已经变为"这是新标题"了。输入中文可以通过 Ctrl+空格 切换出中文输入法;也可以通过复制粘贴的方式输入。

rem 的用法就很简单了,rem 后面跟上一段文字,在批处理中可以作为注释用。rem 和它后面跟的文字在实际运行时并不会起任何作用,只是为了方便人们阅读该批处理时更容易理解而已(如果您用过C的话,一定会联想到C语言里的 // 或/* */的用法)。除了 rem 外,两个连续的冒号 :: 也起同样的作用。提示:rem 与 :: 的区别在于,rem 也是一种命令,在 echo on 的情况下会被显示出来,而 :: 却不会。

:::::::测试标题和注释.bat:::::::
@echo off
rem 上条命令表示以后所有的命令行不再显示自身,@表示连echo off这一句都不显示,当前这一行只是注释而已,不参与程序的运行。

echo 欢迎!
pause

title 现在标题已经换成这句了
echo 标题已更改

echo 现在使用了暂停,按任意键后该批处理结束~
pause>nul
rem 不显示pause的输出提示,而是使用我们自己定义的暂停提示。
::::::::::::::::::::::::::::::::

2.4 其他命令

prompt ,这就是命令提示符中所谓的"提示符"了。在命令提示符中输入 prompt 加一段文字能够使得提示符不再是以传统的路径名和大于号组成的,而是以我们刚才输入的那段文字开头的。这也许不是很好理解,或者您对 prompt 的含义还不清楚或只知道其字面含义。这并不要紧,如果您只要简单地输入 prompt 提示符 就能很快地明白 prompt 的含义了。此外,要想恢复以前的路径名和大于号为开头的提示符,只需要再输入 prompt \(p\)g 即可。这里\(p 表示当前驱动器和路径,\)g 表示大于号。因为一些特殊的格式或符号需要用 $ 加特定的字母来表示。具体的说明可以用 help prompt 来查询。

评论