因为之前接触过一个bat命令,用来删除的目录下所有文件,所以一直想着抽时间学习一下dos命令。
我来说下一个我想学习dos的起源:
之前我遇到有一些脏文件删除不掉,怎么删除都无效,后来网上各种搜索搜到下面个删除方法,只需要把需要删除的文件或者文件夹拖入到这个.bat
文件上面就行,成功之后一直对dos命令很好奇,因为后缀为.bat
,搜索之后才知道.bat
后缀的就是dos命令,就好比.sh
是shell命令的后缀,然而过了很久,一直没有抽出时间学习一下dos,最近准备,抽出没事的时间学习一下dos的基本知识。
下面是我学dos的起源的删除bat脚本。至于搜到这个方法的页面我也记不清了,当时网上也是搜了好久,如果原作者看到,还望见谅。不过还是要谢谢这个命令的作者,算是我学dos的间接引导者。这个方法确实提高了我的工作效率(删除文件特别快,比右键删除快了不少(文件数量多的时候),还不用去回收站再次删除)。
新建一个文本文件:
粘贴以下代码:
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
然后保存之后另存为其他文件,类型为所有类型,后缀为.bat
,
也可以保存文件之后直接修改后缀,方法可以参考我的另一个博客:
window10 系统下如何修改文件后缀
下面是我修改成功的一个bat命令,因为这个bat文件就是删除各种文件(不好删除的文件也可以删除,如果实在不行,等下次电脑重启之后,再进行这个操作就行了,我就遇到过一次删除不好删除,但是重启就可以了。)
把这个文件复制到需要删除的文件或文件夹同级,然后拖动到这个文件上方,就会很快删除了,时间根据文件数量和大小决定(这个删除是完全删除,回收站找不到,因为工作中,我要删除几万的小文件,这个方法比放入回收站快很多,但是不可恢复。)
自此,我对dos产生了浓厚的兴趣,因为效率真的是很快,比我使用python模块删除文件快很多,如果只是删除一个文件和文件夹,可以使用此方法。
这个是我所以的dos学习笔记,希望对感兴趣的你有所帮助,如有错误,还望不吝赐教。如果对你有帮助,希望给我点个赞哈,Thanks♪(・ω・)ノ
学习主要还是靠坚持,如果真的觉得学一个知识,就坚持下去;三天打鱼俩天晒网,真的不如躺着歇,刷刷剧,或者玩俩局游戏。。。
window的dos命令学习笔记 一
window的dos命令学习笔记 二
window的dos命令学习笔记 三
window的dos命令学习笔记 四
window的dos命令学习笔记 五
window的dos命令学习笔记 六
window的dos命令学习笔记 七
window的dos命令学习笔记 八— bat文件打包成exe程序(实现脚本加密)
window的dos命令学习笔记 九— bat使用小工具
如果大家对那个DOS命令不明白,可以通过输入“命令”/? 来得到系统提供的帮组信息。
比如:
del /?
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。这里要讲的就是DOS批处理。
批处理是一种简化的脚本语言,它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是COMMAND.COM或者CMD.EXE)解释运行。类似于Unix中的Shell脚本。批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。
批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。
一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见exit命令或出错意外退出。
echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。
这个其实就是打印,和linux下的echo的功能一样,因为我前几天刚学习了一下shell编程,所以比较印象深刻;如果你不会shell,其实这个和python的print也是功能差不多。
这个就相当于进入dos的环境。
这个就相当于cmd中输入python进入python环境一样(我的个人理解,如有不对,欢迎留言赐教)。
pause 运行此句会暂停,显示Press any key to continue… 等待用户按任意键后继续
例如我写个1hello.bat脚本:
echo off
echo "hello,我是奋斗吧-皮卡丘,这是我自己写的的第一个bat批处理命令"
pause
保存之后,直接点击:
echo off改为@echo off。
执行就这样了。说明加入@,后面返回的是执行命令之后的结果。
call 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令)
这个我的个人理解,其实就是相当于cmd中执行python文件的python 文件名.py
.前面的python
;shell执行脚本sh 文件名.sh
前面的sh
.
REM 和 :: REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。 其次, :: 也可以起到rem 的注释作用,
而且更简洁有效; 但有两点需要注意: 第一, 任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。
有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别。
无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto无法识别的标号,可以起到注释作用,所以 :: 常被用作注释符号,其实 :+
也可起注释作用。 第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态,
因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于
config.sys 文件中。行内注释格式:%注释内容% (不常用,慎用)
rem
后面跟注解的内容,后面的内容,方便阅读脚本,相当于python和shell注解前面的#
但是执行中是不显示的。
比如:
新写入一个脚本:
@echo off
echo "hello,我是奋斗吧-皮卡丘,这是我自己写的的第二个bat批处理命令"
rem "这个是我的第二个bat批处理命名"
pause
执行之后:
新建一个bat脚本:
其他e:000dos\1hello.bat
这个文件存在:
@echo off
echo "hello,我是奋斗吧-皮卡丘,这是我自己写的的第二个bat批处理命令"
rem "这个是我的第二个bat批处理命名"
call e:000dos\1hello.bat
pause
然后,保存之后,如果直接点击运行,我这里是执行不了。
但是我使用cmd用call执行这个新建的bat文件可以执行。(我的个人感觉还是环境的问题,估计直接点击bat文件的环境和cmd中的环境不一样的原因导致吧,如果理解有误,欢迎懂的大佬解惑。)
如果日后有时间,我感觉我还会再学习一下powershell吧。
这个类似shell的rm
操作。
命令模式:
del 参数 需要删除的文件或者目录
使用的参数类型:
/P 删除每一个文件之前提示确认。
/F 强制删除只读文件。
/S 删除所有子目录中的指定的文件。
/Q 安静模式。删除全局通配符时,不要求确认
/A 根据属性选择要删除的文件
其实这个些参数些成小写也是可以的:
不过为了规范,还是写大写比较好。
%表示参数,参数是指在运行批处理文件时在文件名后加的字符串。变量可以从 %0到%9,%0表示文件名本身,字符串用%1到%9顺序表示第一个到第九个参数。
%*表示所以参数(除本身文件名外)
默认会把
编写一个bat文件,写入代码:
@echo off
echo "文件名是%0"
echo "第一个参数%1"
echo "第二个参数%2"
echo "第三个参数%3"
echo "所有参数%*"
pause
执行代码,
call e:\000dos\4传参.bat hell every one very good
可以从结果看出来,参数一次,第一个为文件名,后面参数以空格问分割。
由于好奇我之前的删除脚本,然后进行一个模拟,
我把3拖到4的上面,看看出现什么结果。
然后发现,第一个参数就是拖入的文件名,所以我也就知道了删除脚本的第一行命令。
%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
我发现起源的文件就是使用del和rd俩个命令进行制作的,
删除一个目录。
RMDIR [/S] [/Q] [drive:]path RD [/S] [/Q] [drive:]path
/S 除目录本身外,还将删除指定目录下的所有子目录和 文件。用于删除目录树。 /Q 安静模式,带 /S 删除目录树时不要求确认
这个如果不会,可以直接在cmd中,如初rd /?
即可查看使用方法。
由于前面的del测试无法删除文件夹,不过可以把所有的文件夹内所有的文件删除,二者集合可以删除文件,但是我测试直接使用rd也可以达到效果。
但是只能文件合适才可以,如果我把一个文件设置问只读,就无法删除了,这时候del的效果就能排上用场了,del可以删除各种文件(只要不占用),rd可以删除剩余的文件夹。
这也只读为什么删除脚本的写法del放前面,rd放后面。
cls 命令
清除屏幕。执行该命令后,屏幕上的所有信息都被清除,光标重新定位至屏幕左上角。
这个类似于Linus中的clear,就是为了清屏。
将一份或多份文件复制到另一个位置。
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ …]] [destination [/A | /B]]
source 指定要复制的文件。
/A 表示一个 ASCII 文本文件。
/B 表示一个二进位文件。
/D 允许解密要创建的目标文件
destination 为新文件指定目录和/或文件名。
/V 验证新文件写入是否正确。
/N 复制带有非 8dot3 名称的文件时,
尽可能使用短文件名。
/Y 不使用确认是否要覆盖现有目标文件
的提示。
/-Y 使用确认是否要覆盖现有目标文件
的提示。
/Z 用可重新启动模式复制已联网的文件。
/L 如果源是符号链接,请将链接复制
到目标而不是源链接指向的实际文件。
命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。 这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批处理脚本中执行的,默认值应为 在覆盖时进行提示。要附加文件,请为目标指定一个文件,为源指定 数个文件(用通配符或 file1+file2+file3 格式)。
复制大bat脚本:
@echo off
copy E:\000photo E:\000dos\111
pause
执行之后,E:\000photo
目录下的所以文件会复制到 E:\000dos\111
目录下。
移动文件并重命名文件和目录。
要移动至少一个文件:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination
要重命名一个目录:
MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2
[drive:][path]filename1 指定你想移动的文件位置和名称。
destination 指定文件的新位置。目标可包含一个驱动器号
和冒号、一个目录名或组合。如果只移动一个文件
并在移动时将其重命名,你还可以包括文件名。
[drive:][path]dirname1 指定要重命名的目录。
dirname2 指定目录的新名称。
/Y 取消确认覆盖一个现有目标文件的提示。
/-Y 对确认覆盖一个现有目标文件发出提示。
命令行开关 /Y 可以出现在 COPYCMD 环境变量中。这可以用命令行上
的 /-Y 替代。默认值是,除非 MOVE 命令是从一个批脚本内
执行的,覆盖时都发出提示。
创建一个bat移动脚本
@echo off
move E:\000dos\111 E:\000dos\222
pause
点击执行之后,后直接把111这个目录,全部移动到222里面,目录也会移动。
注意点:
000dos
目录必须存在,如果不存在,移动失败),会自己创建222,并且把111里面的所有子文件和目录(不含111目录)移动到222中。常用的几个(这个根据我自己的使用,其他的自己参考):
notepad--------打开记事本
calc-----------启动计算器
tsshutdn-------60秒倒计时关机命令
mspaint--------画图板
其他的一些,如果不全自己搜索把:
winver---------检查Windows版本
wmimgmt.msc----打开windows管理体系结构
wupdmgr--------windows更新程序
wscript--------windows脚本宿主设置
write----------写字板winmsd-----系统信息
wiaacmgr-------扫描仪和照相机向导
winchat--------XP自带局域网聊天
mem.exe--------显示内存使用情况
Msconfig.exe---系统配置实用程序
mplayer2-------简易widnows media player
mstsc----------远程桌面连接
mplayer2-------媒体播放机
magnify--------放大镜实用程序
mmc------------打开控制台
mobsync--------同步命令
dxdiag---------检查DirectX信息
drwtsn32------ 系统医生
devmgmt.msc--- 设备管理器
dfrg.msc-------磁盘碎片整理程序
diskmgmt.msc---磁盘管理实用程序
dcomcnfg-------打开系统组件服务
ddeshare-------打开DDE共享设置
dvdplay--------DVD播放器
net stop messenger-----停止信使服务
net start messenger----开始信使服务
nslookup-------网络管理的工具向导
ntbackup-------系统备份和还原
narrator-------屏幕"讲述人"
ntmsmgr.msc----移动存储管理器
ntmsoprq.msc---移动存储管理员操作请求
netstat -an----(TC)命令检查接口
syncapp--------创建一个公文包
sysedit--------系统配置编辑器
sigverif-------文件签名验证程序
sndrec32-------录音机
shrpubw--------创建共享文件夹
secpol.msc-----本地安全策略
syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
services.msc---本地服务设置
Sndvol32-------音量控制程序
sfc.exe--------系统文件检查器
sfc /scannow---windows文件保护
tourstart------xp简介(安装完成后出现的漫游xp程序)
taskmgr--------任务管理器
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打开资源管理器
packager-------对象包装程序
perfmon.msc----计算机性能监测程序
progman--------程序管理器
regedit.exe----注册表
rsop.msc-------组策略结果集
regedt32-------注册表编辑器
rononce -p ----15秒关机
regsvr32 /u *.dll----停止dll文件运行
regsvr32 /u zipfldr.dll------取消ZIP支持
cmd.exe--------CMD命令提示符
chkdsk.exe-----Chkdsk磁盘检查
certmgr.msc----证书管理实用程序
charmap--------启动字符映射表
cliconfg-------SQL SERVER 客户端网络实用程序
Clipbrd--------剪贴板查看器
conf-----------启动netmeeting
compmgmt.msc---计算机管理
cleanmgr-------**整理
ciadv.msc------索引服务程序
osk------------打开屏幕键盘
odbcad32-------ODBC数据源管理器
oobe/msoobe /a----检查XP是否激活
lusrmgr.msc----本机用户和组
logoff---------注销命令
iexpress-------木马捆绑工具,系统自带
Nslookup-------IP地址侦测器
fsmgmt.msc-----共享文件夹管理器
utilman--------辅助工具管理器
gpedit.msc-----组策略