1.DOS命令学习-基本操作

最近跟着网上学习视频学了一些基本的DOS命令,也记录一下吧。

  所有测试基于Win2003系统

  dir指令:

  效果:查看当前目录下有哪些文件

  演示如下:
  

  type指令:

  效果:查看指定文件的内容

  演示如下:

  

  echo指令:

  效果:将指定内容输出到控制台

  演示如下:

  

     > 操作符

  效果:和echo指令配合,可将本应输出到控制台的文本重定向输出到指定文件中

  注意:若指定的文件未被创建,会自动创建此文件,若指定的文件已经存在,会覆盖已有内容

  演示如下:

  1.先演示指定文件已经存在的情况:

  初始情况下czw.txt文件内的内容为:

  

  输出内容并重定向到czw.txt后文件内容被覆盖了:

    

  2.再演示指定文件不存在的情况:

  初始情况下D盘下的文件:

  

   输出内容并重定向到D盘下没有的文件,发现D盘下多了个文件,里面的内容正是我们输出的内容:

  

  

  >>操作符 :

  效果:和>操作符基本一样,唯一的区别是若指定文件已经存在,不会覆盖此文件内容,而是会在后面添加新内容。

  这个操作和>操作符基本一样,就不演示了

  copy con指令:

  效果:将控制台输入的内容写入指定文件

  其中,copy代表复制文件,con代表控制台(键盘/显示器),因此这条指令效果其实和echo配合重定向符>是一样的,但它可以输入多行,以Ctrl+Z可以结束。

  需要注意的是,在覆盖规则上,它和echo是一样的,即: 

  若指定的文件未被创建,会自动创建此文件,若指定的文件已经存在,会覆盖已有内容

  演示如下图:

  1.指定的文件未被创建:

   

  2.指定的文件已经被创建:

   覆盖前:

  

   覆盖后:

  

  rd指令(remove dir的缩写):

  效果:删除指定目录,可以配合/s和/q使用,其中:

    /s,代表除该目录本身外(该目录可以为空),还会删除该目录下的所有子目录和文件

    /q,即安静模式,与/s一起用时奏效,代表用/s删除目录时在命令行窗口中再次进行确认

  演示如下:

  一开始D盘下有一个文件夹ab和一个名为czw.txt的文件,ab文件夹里有一个名为czw1.txt的文件,如下图:

      

  我们先用非安静模式将当前目录下的ab文件夹删除:rd .ab /s

 注意,若文件夹下有东西且命令中不带s,系统会提示目录非空,删除失败。

  另外,和Linux中不一样,Windows中路径用的是,不是/ ,

  结果如下图所示:

 

  再体验一下安静模式的删除吧:

  

 del指令:

  效果:删除指定文件,也可以配合/s和/q使用,其中:

    /s,代表除该目录本身外(该目录可以为空),还会删除该目录下的所有子文件(不删子目录)

    /q,即安静模式,代表删除时不在命令行窗口中再次进行确认

  注意:这条指令和rd指令有点像,不同的是,del指令无法删除目录,但可以删除目录下的文件

  演示如下:

  一开始D盘下有一个文件夹1和一组命名为从a到c的txt的文件,文件夹1里有一个名为2的文件夹,以及一个d.txt文件,文件夹2里有个名为e.txt的文件,如下图:

 

  我们先把D盘下的所有.txt文件删除:

  

  完全没有问题,然后我们尝试下用del删除1这个文件夹,如下图: 

   

  

  确认后(可以用del 1 /q进行不确认的删除)可以看到,目录1下的文件夹2并没有被删除,而且文件夹2里的e.txt也没有被删除,它只删除了目录1下的d.txt文件。 

  恢复删除前的样子,我们试下用del 1 /s/q删除,如下图:

   

  

  可以看到,加了/s可以删除子文件夹下的文件,但还是不能删除任何一个文件夹。

  ren指令:

  效果:重命名文件/文件夹

  演示如下:

  重命名前:

  

   重命名后:

   

  fsutil指令:

  效果:用于做文件管理,功能很强大,这里只介绍一个fsutil file createnew,其余可参考:

    http://www.51testing.com/html/17/75417-229574.html

    fsutil file createnew+文件名+文件长度,可以创建一个指定大小的新文件

  演示如下:

  

  成功创建一个4G大小的文件

  assoc指令:

  效果:修改文件关联性,比如使系统把.txt结尾的文件识别成.exe之类的

  演示如下

   修改前:

  

  修改后:

  

  

  恢复到修改前的样子:

  

   

  shutdown指令:

    效果:做一些定时操作,如定时关机,定时重启等

  其中:-s代表关机,-r代表重启,-a代表取消所有定时,-f代表强制执行(不论你当时在做什么),-t代表定时操作,后面加定时时间(单位是秒),-c用于在消息框展示提示信息,后面加要提示的内容

  注意,一旦设置了定时,只能用命令行去解除

  选一些演示如下

   设置60秒的自动关机

    

  

  取消自动关机:

    

  

 start指令:

 效果:运行指定程序/网页

     若后面什么都不加,则会打开命令行窗口

 命令比较简单,就不演示了。

 

 taskkill指令:

 效果:杀死指定进程,后面加/pid可用进程PID指定要杀死的进程,加/im则可用进程名称指定要杀死的进程。  

    另外还可加/f用于强制杀死进程

 演示如下:

 

 用它杀死explorer.exe进程,可使桌面不显示。

 可用start命令来恢复(explorer.exe位于C盘的Windows目录下):

 

  ping指令:

   效果:向指定地址发送通信测试包

      可在后面附上:-n+次数,表示ping几次,默认ping 4次

        还可附上:>nul,代表将输出结果重定向到空设备nul,即不显示输出信息

            2>nul,代表将标准错误输出信息重定向到空设备nul,即不显示错误信息。

 可以参考:https://lewky.cn/posts/cf676a21.html

 如下图所示:

  

     图中看不出什么,实际操作会发现执行后会有一定延时,因此它可以用来做批处理中的延时操作,比如清理系统时提示用户开始清理后隔一段时间显示清理完毕。

 开机启动文件夹:

   Windows有个开机启动文件夹,若把程序放在此文件夹下,开机时会自动运行,以Win2008为例,只需在开始->所有程序->启动处右键,点击资源管理器即可跳转到此文件夹,如下图所示:

  

  Win10的启动文件夹寻找可以参考:https://zhidao.baidu.com/question/1896622295735859540.html

  注意:路径中的C:Documents and SettingsAdministrator是当前账户名称对应的路径,会随着登录的账户不同而改变,因此若要在DOS命令中操作这个路径,账户名这里需要用%userprofile%代替。其中,userprofile是个系统变量,代表当前用户路径(WinXP和Win2003是C:Documents and Settings用户名,Win2008,Win7和Win10是C:Users用户名),%%代表取变量的值。

 set /p指令:

 它用于设置变量,比如set /p a=100,相当于定义一个变量a,其值为100

 也可以用于定义一个由用户输入值的变量,如set /p a=请输入变量值:

  此时会将“请输入变量值:”显示在控制台,同时等待用户输入,用户输入后按回车,即值被赋值给a,同时继续进行下一步。

 具体可以参考:https://www.jb51.net/article/107288.htm

  来做两个小练习:

 1.现在我们来编写一个清理系统的批处理程序(.bat),要求是不能给用户看到执行过程,用户应该直接看到"系统清理中"的提示,过段时间后提示清理完毕,用户点击后退出程序。

 答案:

 代码和执行结果如下:

 

 代码注释如下:

 

 2.制作一个批处理程序,它有着定时关机,取消定时关机以及退出程序的功能,可以让玩家自行选择执行哪个功能,且在执行定时关机功能时,会恶意地把打开命令行窗口的代码插入到开机启动项,且随着此功能执行次数的增多,每次启动时打开的命令行窗口会越多。

   答案:

  代码如下:   

    

  代码注释如下:

       

 

原文地址:https://www.cnblogs.com/czw52460183/p/13224936.html