DOS命令
DOS命令
DOS命令,是DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。DOS命令不区分大小写,比如C盘的Program Files,在dos命令中完全可以用"progra~1"代替,加上英文引号是因为名称的中间有空格(即多于一个词)。. 代表当前文件夹,.. 代表上层目录,如命令 cd .. 就是回到上层目录。文件夹是不能通过命令行(只能打开某个文件)打开的,因为它下边还有子目录,命令行只会进入到它的下级目录里。
DOS常用命令:
- cls 清屏
- cd 改变当前目录
- edit 文本编辑
- dir 列文件名
- ren 改变文件名
- move 移动文件,改目录名
- copy 拷贝文件
- del 删除文件
- md 建立子目录
- rd 删除目录
- deltree 删除目录树
- tree 显示命令树结构
- type 显示文件内容
- more 分屏显示
- attrib 设置文件属性
- mem 查看内存状况
- date 显示及修改日期
- time 显示及修改时间
- set 设置环境变量
- debug 程序调试命令
- shutdown 关机
- ping 查看网络连通情况
- diskcopy 制磁盘
- sys 制作DOS系统盘
- format 格式化磁盘
- fdisk 硬盘分区
- fasthelp 快速显示帮助信息
- ver 显示DOS版本
DOS特殊命令应用技巧:
- 向上箭头"↑"和向下箭头"↓"和向右箭头 ————回看上一次执行的命令
- "Ctrl+C" 组合键或"Break"键————中断操作,返回操作系统
- 鼠标操作"标记"————用来选中文本,再按“Enter”键可复制文本
- 鼠标操作"粘贴"————用来把剪贴板内容粘贴到提示符下
- "F7"键 ————查看及执行用过的命令
- "/?" ————指定命令帮助
- ">" 及">>" ————文件重定向
运行命令
运行命令主要是DOS操作系统的运行方式。DOS时代的时候,为了方便用户的操作,微软公司将一些常用的命令,如DIR,CD等命令全部集成在系统里面。这对于DOS来说是一个很大的优点。而存放这些内部命令的文件是“Command”(文件后缀.com)。它与IO.sys、Msdos.sys一起成为DOS系统的三个重要文件。在DOS系统里面输入任何命令的时候,系统会先从COMMON(后缀.com)文件里面来寻找有没有这条命令,如果没有则转向寻找外部命令。
外部命令其实就是一些可执行的文件(.exe文件)、程序文件(.com文件)和批处理文件(.bat)、不可执行文本(txt.shs)、防止破坏文件(.dll),也包括微软后来更新windows installer后而以.msi命名的文件。
建立一个批处理文件(.bat),将以下脚本放入其中,可将子文件夹内的文件所有.csf文件复制到当前文件夹:
#注意最后有个点一定要留,它代表当前目录
@echo off
for /r . %%a in (*.csf) do if exist "%%a" copy /y "%%a" .
Shell(计算机外壳)
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。传统意义上的shell指的是命令行式的shell。
附:
DOS命令中字符的应用:
1、单符号
【~】
① 在for中表示使用增强的变量扩展。
② 在%var:~n,m%中表示使用扩展环境变量指定位置的字符串。
③ 在set /a中表示一元运算符,将操作数按位取反。
【!】
① 在set /a中一元运算符,表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。
【@】
① 隐藏命令行本身的回显,常用于批处理中。
【$】
① 在findstr命令里面表示一行的结束。
② 在prompt命令里面,表示将其后的字符转义(符号化或者效果化)。
【%】
① 在set /a中的二元运算符,表示算术取余。
② 命令行环境下,在for命令in前,后面接一个字符(可以是字母、数字或者一些特定字符),表示指定一个循环或者遍历指标变量。
③ 批处理中,后接一个数字表示引用本批处理当前执行时的指定的参数。
④ 其它情况下,%将会被脱去(批处理)或保留(命令行)
【^】
① 取消特定字符的转义作用,比如& | > < ! "等,但不包括%。比如要在屏幕显示一些特殊的字符,比如> >> | ^ &等符号时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
② 在set/a中的二元运算符,表示按位异或。
③ 在findstr/r的[]中表示不匹配指定的字符集。
【&】
① 命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令。
② 在set/a中是按位与。
【*】
① 代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:\*.txt"。
② 在set /a中的二元运算符,表示算术乘法。
③ 在findstr/r中表示将前一个字符多次匹配。
【-】
① 范围表示符,比如日期的查找,for命令里的tokens操作中就可以用到这个字符。
② 在findstr/r中连接两个字符表示匹配范围。
③ -跟在某些命令的/后表示取反向的开关。
④ 在set /a中:
1.表示一个负数。
2.表示算术减运算。
【+】
① 主要是在copy命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了。
② 在set/a中的二元运算符,表示算术加法。
【:】
① 标签定位符,表示其后的字符串为以标签,可以作为goto命令的作用对象。比如在批处理文件里面定义了一个":begin"标签,用"goto begin"命令就可以转到":begin"标签后面来执行批处理命令了。
② 在%var:string1=string2%中分隔变量名和被替换字串关系。
【|】
① 管道符,就是将上一个命令的输出,作为下一个命令的输入."dir /a/b |more"就可以逐屏的显示dir命令所输出的信息。
② 在set/a中的二元运算符,表示按位或。
③ 在帮助文档中表示其前后两个开关、选项或参数是二选一的。
【/】
① 表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数。
② 在set/a中表示除法。
【>】
① 命令重定向符,
参数:命令+ > +写入路径\文件名
实例:
echo 燕大欢迎你 >d:\1.txt ;写入文本到指定文件(如果文件存在则替换)
② 在findstr/r中表示匹配单词的右边界,需要配合转义字符\使用。
【<】
① 将其后面的文件的内容作为其前面命令的输入。
② 在findstr/r中表示匹配单词的左边界,需要配合转义字符\使用。
【=】
① 赋值符号,用于变量的赋值。比如"set a=windows"的意思意思是将"windows"这个字符串赋给变量"a"。
② 在set/a中表示算术运算,比如"set /a x=5-6*5"。
【\】
① 这个"\"符号在有的情况下,代表的是当前路径的根目录.比如当前目录在c:\windows\system32下,那么你"dir \"的话,就相当与"dir c:\"。
② 在findstr/r中表示正则转义字符。
【,】
① 在set /a中表示连续表达式的分割符。
② 在某些命令中分割元素。
【.】
① 在路径的\后紧跟或者单独出现时:
一个.表示当前目录。
两个.表示上一级目录。
② 在路径中的文件名中出现时:
最后的一个.表示主文件名与扩展文件名的分隔。
【?】
① 在findstr/r中表示在此位置匹配一个任意字符。
② 在路径中表示在此位置通配任意一个字符。
③ 紧跟在/后表示获取命令的帮助文档。
2、多符号(符号不能分隔)
【&&】
① 连接两个命令,当&&前的命令成功时,才执行&&后的命令。
【||】
① 连接两个命令,当||前的命令失败时,才执行||后的命令。
【>&】
① 将一个句柄的输出写入到另一个句柄的输入中。
【<&】
① 从一个句柄读取输入并将其写入到另一个句柄输出中。
【%%】
① 两个连续的%表示在预处理中脱为一个%。
② 批处理中,在for语句的in子句之前,连续两个%紧跟一个字符(可以是字母、数字和一些特定字符),表示指定一个循
环或者遍历指标变量。
③ 批处理中,在for语句中,使用与in之前指定的指标变量相同的串,表示引用这个指标变量。
【>>】
① 命令重定向符,将其前面的命令的输出结果追加到其后面。
参数:命令+ >> +写入路径\文件名
实例:
echo 燕大欢迎你 >d:\1.txt ;写入文本到指定文件(如果文件存在则替换)
netstat -an >>d:\1.txt ;即追随‘1.txt’的尾端继续写入‘netstat -an’命令输出结果
② 在set /a中的二元运算符,表示逻辑右移。
【==】
① 在if命令中判断==两边的元素是否相同。
【<<】
① 在set /a中的二元运算符,表示逻辑左移。
【+=】
① 在set /a中的二元运算符。例如set /a a+=b表示将a加上b的结果赋值给a。
【-=】
① 在set /a中的二元运算符。例如set /a a-=b表示将a减去b的结果赋值给a。
【*=】
① 在set /a中的二元运算符。例如set /a a*=b表示将a乘以b的结果赋值给a。
【/=】
① 在set /a中的二元运算符。例如set /a a/=b表示将a加上b的结果赋值给a。
【%=】
① 在set /a中的二元运算符。例如set /a a%=b表示将a除以b的余数赋值给a。
注:命令行可以直接用 set /a a%=b ,在批处理里面可以用 set /a a%%=b 。
【^=】
① 在set /a中的二元运算符。例如set /a a"^="b表示将a与b按位异的结果赋值给a。
注:这里 "^=" 加引号是为了防止^被转义,下同。
【&=】
① 在set /a中的二元运算符。例如set /a a"&="b表示将a与b按位与的结果赋值给a。
【|=】
① 在set /a中的二元运算符。例如set /a a"|="b表示将a与b按位或的结果赋值给a。
【<<=】
① 在set /a中的二元运算符。例如set /a a"<<="b表示将a按位左移b位的结果赋值给a。
【>>=】
① 在set /a中的二元运算符。例如set /a a">>="b表示将a按位右移b位的结果赋值给a。
【\<】
① 在findstr的一般表达式中表示字的开始处。
【\>】
① 在findstr的一般表达式中表示字的结束处。
【! !】
① 当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用。
【' '】
① 在for/f中表示将它们包含的内容当作命令行执行并分析其输出。
② 在for/f "usebackq"中表示将它们包含的字符串当作字符串分析。
【( )】
① 命令包含或者是具有优先权的界定符,比如for命令要用到这个(),我们还可以在if,echo等命令中见到它的身影。
② 在set /a中表示表达式分组。
【" "】
① 界定符,在表示带有空格的路径时常要用""来将路径括起来,在一些命令里面也需要" "符号。
② 在for/f中将表示它们包含的内容当作字符串分析。
③ 在for/f "usebackq"表示它们包含的内容当作文件路径并分析其文件的内容。
④ 在其它情况下表示其中的内容是一个完整的字符串,其中的>、>>、<、&、|、空格等不再转义。
【` `】
① 在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。
【[ ]】
① 在帮助文档表示其中的开关、选项或参数是可选的。
② 在findstr /r中表示按其中指定的字符集匹配
相关链接:
DOS之家:http://doshome.com/soft/
高洪臣 (Gavin Gao)
cggos@outlook.com
=======================================================================