当前位置:文档之家› DOS学习笔记

DOS学习笔记

2011

DOS学习笔记

Steven Shao【修改】

有WINDOWS为何还学DOS?因为DOS在某些方面效率更高;学

习Linux 交换机/路由器DOS更方便;远程控制。

Steven

LCG工作室

2011/3/17

目录

一、入门与概述 (1)

1.文件与目录 (1)

2.exe:可执行文件 (1)

3.DOS内部命令和外部命令 (1)

4..和..与\ (1)

5.Dir命令 (1)

6、DOS启动顺序 (2)

二、DOS命令简介 (4)

1.Dir (4)

2.Cd (5)

3.Copy (5)

4.Xcopy (6)

5.Del (6)

6.ren (6)

7.type (6)

8.Format与unformat (6)

9.Md与Rd (6)

10.Deltree (7)

11.Mem (7)

12.Chkdsk (7)

13.Sys (7)

14.Cls (7)

15.More (8)

16.Move (8)

17.Help (8)

18.Attrib (8)

19.Time与date (8)

20.Lable (9)

21.Defrag (9)

22.Doskey (9)

23.Fdisk (9)

24.Memmaker (9)

25.Emm386 (9)

26.Lh 或loadhigh (9)

27.Msd (9)

28.Undelete (10)

29.Path (10)

30.Prompt (10)

31.Backup与restore (10)

33.Set (10)

34.Smartdrv (12)

35.Append (12)

36.Debug (12)

37.Diskcomp (12)

38.Expand (13)

39.Fc (13)

40.Fasthelp (13)

41.Qbasic (13)

42.Setver (13)

43.Share (13)

44.Subst (13)

45.Tree (14)

46.Vsafe (14)

47.Ver (14)

48.Vol (14)

49.Ctty (14)

50.Recover (14)

51.Replace (14)

52.at (15)

53.shutdows (16)

54.find (16)

55.Shift (16)

56.Systeminfo (16)

57.Ntsd (17)

58.建立隐藏用户 (17)

59.Sfc (17)

60.Taskkill (17)

三、批处理命令简介 (18)

1.Echo on/off (18)

2.@ (18)

3.Call (18)

4.Pause (19)

5.Goto label 和:label连用 (19)

6.Rem (19)

7.% (19)

8.If (19)

9.Choice (20)

10.For (20)

11., (23)

12.“ “ (23)

13.^ (23)

15.&& (23)

16.|| (23)

17.| (23)

18.> (24)

19.>> (24)

20.< (24)

21.*和? (24)

22.概念理解:变量扩展与延迟变量扩展 (24)

23.; (25)

四、技巧集合 (26)

1.*.*可用.代替 (26)

2.NUL (26)

3.向文本中添加内容 (26)

4.DOS下的指法练习 (26)

5.Regedit /e (26)

6.命令行参考在 (26)

7.2>nul (27)

8.让程序一个接一个执行 (27)

9.查看与本地机器连接的用户列表 (27)

10.在子网内,ping不通网关,但可以与其它机器正常ping通 (27)

11.新建一个文件 (27)

12.命令提示符被禁止 (28)

13.批处理执行遇到“bad command or filename”这样的错误提示该如何理解? (28)

14.在用批处理编写菜单时,不要用特殊符号 (28)

15.想同别人QQ (28)

16.如何在批处理中加空行 (28)

17.批处理中如何调用vbs文件(未测试) (28)

18.如果用Cacls把硬盘锁定了的解决方法 (29)

19.设置本机“用户帐户”操作 (29)

五、断章取义 (30)

1.@echo msgbox "下载完了",4096 >> e:\test.vbs (30)

2.在批处理中加弹出窗口 (30)

3、不断弹出窗口的代码 (30)

4、设定循环次数启动某程序或命令 (31)

5、记录登陆计算机时间的批处理 (31)

6、隐藏运行批处理文件时“一闪而过的CMD窗口画面” (31)

7、将某个文件拷贝到某个磁盘所有目录包括子目录下 (32)

8、如何更干净的清除垃圾文件 (32)

9、安静模式运行程序的脚本代码 (32)

10、删除found.001/found.002等垃圾文件的批处理代码,不错! (32)

11、清除重复行批处理代码 (32)

12、通过批处理修改注册表中的文件类型进而实现“某类型文件无法被打开”? (33)

六、概念理解 (34)

七、DEBUG的学习 (35)

一、入门与概述

1.文件与目录

文件名:文件基本名+后缀

文件基本名:1-8个字符,对于文件名必须存在;后缀0-3个字符,可有可无。

目录:在Windows中称作“文件夹”。

用DIR显示时,后面跟有[dir]标志,表明它们是目录。

2.exe:可执行文件

com:命令文件

bat:批处理文件

它们都被称作“可执行文件”。

Bat后缀的文件优先级高于以exe和com为后缀的文件

3.DOS内部命令和外部命令

内部命令是由https://www.doczj.com/doc/235962061.html,随系统启动直接加载到内存中去的,可直接使用。

换句话说,内部命令存在于https://www.doczj.com/doc/235962061.html,文件中。

外部命令是一个个独立的文件,存在于磁盘中,需要时可调入内存执行。

4..和..与\

. :当前目录

.. :当前目录的上一级目录,也称“父目录”

\ :根目录。

5.Dir命令

当前目录存在.和..时,用dir命令显示当前目录信息时,它们被认为是一个文件,只是大小为零。

6、DOS启动顺序

启动——》IO.SYS——》MSDOS.SYS——》CONFIG.SYS——》https://www.doczj.com/doc/235962061.html,——》Autoexec.bat 其中,IO.SYS、MSDOS.SYS、https://www.doczj.com/doc/235962061.html,对于DOS系统的启动必不可少。

io.sys :输入输出处理程序

Msdos.sys :文件处理程序

https://www.doczj.com/doc/235962061.html, :命令处理程序

新解:

对于DOS,硬盘启动时首先有INT19中断来读取“硬盘MBR”,读到后将MBR读到内存0000:007c,接着INT19也跳到内存中0000:007c,此时的控制权还是INT19,接着在MBR中“有一个程序”会寻找“可引导的分区”,找到后将引导分区读到0000:007c,这时MBR程序就会跳到0000:007c这个地址上,系统开始启动了。

主引导扇区是:0柱0磁头1扇区

之后就是FAT(文件分配表)了

补充(2007-12-10)

。DOS :disk operating system,单用户单任务OS。

冷启动:开机时,打开显示器电源-》主机电源,关机时顺序相反

热启动:系统启动时,按CTRL+ALT+DEL组合键再次启动系统

二者区别:是否跳过内存检测等一些硬件检测过程,其它运行过程相同

。DOS常用保留名

CON :键盘\显示器

NUL :空设备或虚拟设备

AUX/COM1 :第一串行通信接口

COM2\COM3\COM4 :第2、3、4串行口

LPT1\PRN :第一并行接口

。批处理文件可以理解成“一个DOS命令”

。为何不要将批处理文件命名为DOS的“内部命令或外部命令”?

答:如果与内部命令同名,则DOS内部命令优先级高于批处理,批处理文件不能执行;

如果与外部命令同名,则取决于“先找到外部命令还是先找到批处理文件”,谁先被找到就先执行,因此,建议命名批处理时要避免与DOS的内、外部命令同名。

。DOS下创建批处理文件的方式?

a copy con 要创建的批处理文件

b edit 要创建的批处理文件

。也可以用

Pause 要显示的信息有类似与echo 要显示的信息

。如何让“批处理文件”鸣镝?(依靠计算机内置扬声器)

在DOS下用edit 鸣镝.bat,之后进入编辑页面,先输入

Pause在输入一个空格,之后在按住CTRL键,按“P”键,松开CTRL键,再按住CTRL键,在按“G”,即可生成一个“鸣镝控制符”。

也可以按住CTRL键不松手,先后按“P”和“G”键。

其实,用echo也能达到同样效果,只是在文本中输入控制符麻烦,可在DOS下编辑批处理文件,输入控制符并保存后在返回到Windows下编辑,不失为一个好办法。

二、DOS命令简介

1.Dir

显示当前目录信息,但不包括系统和隐藏文件

dir /p :分屏显示信息(p是page的缩写,即分页显示屏幕)

dir/w :用宽列表显示信息,没有文件大小和创建日期

dir/d :类似于dir/w显示方式

dir/b :只显示文件名,目录名也按照文件名方式显示,不显示目录名的[ ]标志(一种精简显示)

dir /l :以小写字母显示文件和目录

dir /a::显示指定属性的文件,例:dir /a:r显示当前目录下的所有具有只读属性的文件例:dir /a:d表示只显示目录信息

例:查找指定日期的文件dir|find “2007-12-04”,注意日期的书写格式和本机日期显示匹配

例:在多级目录下查找文件,使用参数/s,如dir temp /s,如果当前目录下有temp目录,temp下还有temp目录,则执行结果是列出最后一层temp目录下的所有文件

REM

dir/?看帮助,发现a后的:是可选的,但如果不用:,则会显示“当前的驱动器的卷没有标签,找不到文件”信息。

不用:,怎么又好使了?自己疏忽吧!

Dir /a:-r :显示当前目录下所有具有非只读属性的文件

- :表示“否的前缀”。

REM

Dir /o: 按照分类方式显示信息,如文件大小、字母顺序等,例:dir /o:s表示按照文件大小显示信息;dir /o:n按照字母顺序显示信息

Dir /n :以“长文件列表方式显示,文件名在最右侧”

Dir /c :类似于dir/n

Dir/x :显示非8dot3命名规则的文件

例:dir >test.txt 表示将dir命令结果导入到一个文本文件里

2.Cd

Change directory改变目录

注意:如果在C盘使用如下命令

c:\>cd e:\test

结果仍在c:\>在,只不过在转到d盘,d盘的当前目录是d:\>test>,我在用at定期删除某目录下的文件就出了以上问题。

例:

@echo off

c:

rem 当时我望了转到c:,结果删除了批处理文件所在的磁盘很多文件,包括批处理文件本身

rem 使得at任务无法执行

cd "C:\Documents and Settings\All Users\Application Data\Symantec\Symantec AntiVirus Corporate Edition\7.5\Logs"

echo y | del *.*

Cd .. 表示回到上一级目录

Cd\ 表示回到根目录

Cd /d 参数/d表示即改变当前目录,也改变当前驱动器

3.Copy

功能是复制与移动,但不能复制目录中的子目录

例:合并两个文本文件1.txt和2.txt为3 .txt

Copy /a 1.txt+2.txt 3.txt

REM 按照ASCII码合并这两个文件

Copy /b 1.txt+2.txt 3.txt

REM 按照二进制合并这两个文件

参数/a和/b不能一起使用,其中/a只能合并纯文本文件,而/b即能以文本方式合并,又能以二进制方式合并

例:加密文件

copy /b test.jpg+1.txt 2.jpg

REM test.jpg和1.txt变成一个文件2.jpg,这样文本信息得到了加密,需要查看该信息,可使用ultraedit软件查看

REM 记住,要加密的文档一定要放到+号右侧

4.Xcopy

可以将目录中的非空子目录复制到其它地方,但要使用参数/s

/e必须与参数/s同用,表示不仅可以拷贝子目录,空目录也可以拷贝

/v拷贝后许进行校验

5.Del

Delete

Del *.* 非常危险的命令

例:del /f 强制删除只读文件Del/a 删除指定属性文件

6.ren

Rename

7.type

一次只能显示一个文件的内容

8.Format与unformat

格式华后的磁盘可利用空间等于磁盘总空间,说明磁盘性能不错

Format /u 表示无条件格式化,此时unformat无效

例:Echo y|formant a:

Unformat 盘符表示恢复已格式化的磁盘

unformat /l 表示列出可恢复的文件列表

9.Md与Rd

新建目录

例:同时建立多个目录

md c:\1 d:\2 e:\3 等价于md c:\1;d:\2

删除目录,所删除的目录里不能有子目录和文件,如果想这样执行,可使用Rd /s

例:建立一个加密目录及如何查看和删除它

md test..\

这样就建立了一个“加密”的文件夹,双击无法打开它

可通过“开始”菜单中的“运行”或“资源管理器中的地址栏”输入它的“完整路径”查看通过rd /s /q删除它

思考:如果建立的“加密”文件夹和属性隐藏的方法包括注册表隐藏结合起来,就可以建立一个相对私秘的空间。

注册表大概位置:MACHINE\SOFTWARE\WINDOWNS\CURRENTVERSION\EXPLORER\ACVANCED\FOLEDR\SHWOAL L\CHECKEDVALUE的值

10.Deltree

删除目录树,非空目录照删不误

Deltree *.*非常危险的命令

11.Mem

Memory

12.Chkdsk

Checkdisk

13.Sys

C:\>sys a:等同于format a:/s,都是制作系统启动盘

如果copy一张DOS启动盘,io.sys和msdos.sys这两个文件不一定能拷贝到磁盘最前面的磁道上

14.Cls

清屏

15.More

分屏显示

16.Move

例:@echo off

Cd c:\test

Move c:*.* a:

REM

注意第3行“c:与*.*”之间没有“\”,这表示将当前目录即test目录下的所有文件拷贝到A盘。

17.Help

人如其名

18.Attrib

Attribute

例:将c:\test目录下的所有文件和子目录(包括目录本身)都设置为“只读”属性

Attrib +r c:\test /s /d

/s :表示对子目录进行操作

/d :表示对目录进行操作,可简单理解为directory

例:将c:\test目录下的所有文件和子目录(不包括目录本身)都设置为“只读”属性Attrib +r c:\test\*.* /s /d

19.Time与date

Date /t :不需输入新时间

Echo+|date|find “当前日期”

Echo+|time|find “当前时间”

例:可编写一批处理文件记录机器时间使用的状况

echo+|date/t>test.txt

Echo+|time/t>>test.txt

20.Labl e

21.Defrag

整理磁盘碎片

22.Doskey

建立和调用DOS宏命令

例:doskey d=deltree,以后执行d就相当于执行deltree命令

例:如果在CMD下输入了很多的命令,需要再次使用这些命令而又不想重复输入时,可使用doskey,具体操作(在CMD):doskey /h(h是history)是查看曾经在CMD下已经使用的命令,可通过F9键调出它们的缓存表再次使用,也可以使用上下箭头或PaUp和PaDn键来操作,如果想清除他们,可使用doskey /reinstall。

23.Fdisk

Fdisk /mbr :重新建立DOS主引导记录

24.Memmaker

内存优化命令

25.Emm386

扩展内存管理

26.Lh 或l oadhigh

将程序载入高端内存

27.Msd

系统检测

不能直接使用

28.Undel ete

该命令使用前,需要使用lock命令,解除对硬盘目录区不让修改的限制

Undelete /all :恢复所有del的文件,不用询问

Undelete /list :列出可恢复的文件列表

29.Path

例:path c:\test

如果在当前目录下执行某命令,不存在,则在path设置的路径下继续寻找该命令,有则执行

30.Prompt

设置提示符,就是我们常见的c:\>,c:表示当前盘符是C盘,\表示根目录,>表示将提示符与待输入的命令分开

可以根据需要将c:\>改变

31.Backup与restore

备份与恢复

Restort /s :包括子目录恢复到指定的目录中

32.Edit

只能编辑文本文件,编辑的文件存在则编辑,不存在则临时建立该文本文件并进入编辑状态,如果保存就会在磁盘上建立该文件

33.Set

设置变量,在CMD下直接输入set命令,会列出绝大部分的系统变量

例:set path=c:\test 等同于path c:\test

例:手动输入变量值

set /p a= 请输入你的选择

REM 在纯DOS环境下,/p参数不存在,该语句自然不好使!

REM 可通过setx命令自行定义类似系统变量的变量(重新启动机器后仍然存在的那种变

量),但XP系统中没有该命令,2003中有。格式:setx 变量赋值

Set /a var=

REM 对变量进行算术运算

例:set /a var+=1

Set %path:str1=str2%

REM 用str2替换str1

例:@echo off

set var= https://www.doczj.com/doc/235962061.html,

Echo 显示var原值

echo %var%

pause

set a=%var: =%

Rem 原变量中的空格被替换掉

echo 显示替换后的var值

echo %a%

set b=%var:.=%

echo %b%

rem 原变量中的点“.”被替换掉

pause

set %path:~10,5%

REM 截取指定变量的列数

例:@echo off

Set var=https://www.doczj.com/doc/235962061.html,

Echo %var%

Set b=%var:~2,3%

Rem 截取指定变量var的前2列,也就是说要从第3列开始读取3个字符赋给新的变量b,rem 那么b=k.o

Echo %b%

Pause

Set %path:~-10%

例:@echo off

set var=https://www.doczj.com/doc/235962061.html,

Echo %var%

Set b=%var:~-3%

Rem 从后往前取指定变量var的3列赋给新的变量b,那么b=com

Echo %b%

Set c=%var:~3%

Rem 从头开始截取指定变量var的前3列,就是说将var的第4列后的所有变量赋给c,rem 那么c=.com

Echo %c%

pause

Set %path:~0,-2%

例:@echo off

set var=https://www.doczj.com/doc/235962061.html,

Echo %var%

Set b=%var:~-3%

Rem 从后往前取指定变量var的3列赋给新的变量b,那么b=com

Echo %b%

Set c=%var:~0,-2%

Rem 从后去掉var的2列,之后从将var赋给c,那么c=zgk.c

Echo %c%

pause

34.Smartdrv

设置磁盘高速缓存

35.Append

设置非可执行文件路径

例:当前目录里没有test.txt,c:\下有

append c:\ 类似于path命令

36.Debug

Debug 文件名

37.Diskcomp

比较两张软盘内容

38.Expand

解压命令

Expand 原压缩文件路径目的地

39.Fc

比较两个文件内容

例:fc /c test1.txt test2.txt

Rem /c 不分大小写比较

40.Fasthelp

快速帮助

XP系统下没有

Fashhelp command 等价于command/?

41.Qbasic

启动basic集成环境

42.Setver

设置版本,还能查看到winword和excel的版本

在config.sys中常用语法:device=setver.exe

REM

没在config.sys中加入device=setver时,还能看到winword和excel的版本,加上了它怎么就什么也看不到呢?也没有错误提示信息

REM

43.Share

44.Subst

用指定的路径替代某个盘符

例:subst a: c:\test 表示用C盘下的test目录替代A盘

Subst a: /d 表示删除替代

45.Tree

显示当前目录或指定目录下的所有子目录结构,但并不显示文件名/f (file):显示目录的同时还显示目录下的文件名

Tree /a :以ascii码显示目录树

例:查找c:\test目录下的test.txt的个数

tree /f c:\test | find /c /I “test.txt”

如果文件太多超出缓冲区大小,可使用:tree /f |more 46.Vsafe

病毒防护程序,没试过!!!!!!!

47.Ver

查看DOS版本号

48.Vol

查看磁盘的卷标号

49.Ctty

改变控制的输入输出设备

例:ctty aux 表示设置aux为输入输出设备50.Recover

覆盖磁盘

51.Replace

例:replace c:\test1.txt d:\test2.txt /r

即使test2.txt具有只读属性,也将被替换

例:replace d:\a.txt d:\backup /s /p /u

/s :用D:\a.txt替换D:\backup及其子目录下所有的同名文件

/p :替换前要进行确认

/u :(update),在替换前检查源文件与被替换的目标文件的修改时间,如果前者更新,则不进行替换

例:@echo off

cd %1

for %%i in (*.%3) do if not exist "%2%%i" copy %%i "%2" /y

replace *.%3 "%2" /u

执行filesyn.bat d:\ e:\ txt

52.at

定制计划任务(该命令定制的计划任务是后台运行的,而在Windows下“任务计划”定制的任务是前台运行),二者的主要区别还有at命令只能查看有at命令本身定制的计划任务,而控制面板中的“任务计划”可以查看它和at命令定制的任务;二者都依靠task scheduler 服务,如果该服务停止,通过运行“任务计划”中的任务可以开启该服务,而at命令定制的服务则不行。

例:设置at制定的任务为前台运行

at 16:30 /interactive c:\test.bat

/interactive 可使任务变为前台运行

例:指定时间运行某程序

At 16:00 c:\test.bat

::在16:00运行test.bat

例:没有15执行某任务

At 16:30 /every:15 c:\test.bat

::每月的15日16:30运行

At 16:30 /next:15 c:\test.bat

:: 下个月的15日16:30运行

At 16:30 /every:四c:\test.bat

::每周四的16:30运行

例:删除某任务

At 2 /delete /yes

::删除任务ID为2的计划任务,/yes表示删除任务不需要确认

例:删除所有任务

相关主题
文本预览
相关文档 最新文档