- 新建文件夹:md test(效果同MKDIR test,注意不是mk test)
- 删除目录:rd test
- 复制目录:xcopy %Directory% %Directory2%
- 设置目录变量:set Directory=F:test;
- 设置文件路径变量:set filepath=test1file.exe
- 调用目录变量:%Directory%。
- 设置好变量后,任何变量需要搭配其他指令一起使用。比如搭配del命令使用,del "%Directory%%filepath%"等价于del "F:testtest1file.exe"。
在win10系统的cmd窗口中,要显示当前目录下的文件、文件夹信息,可以用dir命令。
要显示目标目录下的信息,可以先切换工作目录(cd命令或其他方式)为目标目录,然后再用dir。
或者直接执行命令【dir 目标目录】,比如我要显示百度网盘下载文件夹的文件目录信息。
1.3.2 显示树级目录结构——treelinux系统中,要显示某一个目录下的文件(夹)列表,可以用ls命令,当然也可以用dir命令。
下面继续讲解windows中cmd窗口中的tree指令。
Windows+R 输入cmd命令,我们直接在窗口输入help tree,就可看到帮助信息:
1.4 查找目录下的某文件或文件夹
- tree : 显示当前目录下所有子级文件夹树级结构(不包括文件)。
- tree D:ChromeCoreDownloadstest : 显示指定目录下所有子级文件夹树级结构(不包括文件)。
- tree D:ChromeCoreDownloadstest /f :显示指定目录下所有子级文件夹树级结构(包括文件)。
- tree D:ChromeCoreDownloadstest /f /a:作者在测试时,没发现加/a和不加/a的显著区别。
- tree D:ChromeCoreDownloadstest /f > tree.txt:将指定目录下所有子级文件夹树级结构(包括文件)信息写入当前目录下的tree.txt文件。
- tree D:ChromeCoreDownloadstest /f > D:ChromeCoreDownloadstesttree.txt:将指定目录下所有子级文件夹树级结构(包括文件)信息写入指定目录下的tree.txt文件。
tips:windows下的tree指令功能不够强大,可以下载git tree shell来补充这方面的功能,比如如果文件太多时,可以只显示指定目录向下两级的文件夹层级结构信息。
dir的常规用法是查找某目录下有哪些文件或文件夹,更加“费电脑”的用法是查找某目录下的指定名称的文件(夹)各分布在哪里、大小各是多少、总共统计出来的数目是多少。
比如我想查找百度网盘下载文件夹下有多少个demo.bat文件,就可以先执行命令【cd /d D:BaiduNetdiskDownload】来切换当前工作目录,然后再执行命令【dir demo.bat】,最终结果如下图所示。
非常奇怪,按道理也可以查找某目录下有多少指定名称的文件夹,但是实际却没办法做到。
1.5 切换目录,进入指定文件夹——cd或chdir标题已经写得足够明白,cd命令和chdir命令是完全等价的。
打印cd命令的帮助信息,我们可以知道cd命令是用来显示当前工作目录和切换工作目录的。
C:WINDOWSsystem32>cd /?
显示当前目录名或改变当前目录。
CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]
.. 指定要改成父目录。
键入 CD drive: 显示指定驱动器中的当前目录。
不带参数只键入 CD,则显示当前驱动器和目录。
使用 /D 开关,除了改变驱动器的当前目录之外,
还可改变当前驱动器。
如果命令扩展被启用,CHDIR 会如下改变:
当前的目录字符串会被转换成使用磁盘名上的大小写。所以,
如果磁盘上的大小写如此,CD C:TEMP 会将当前目录设为
C:Temp。
CHDIR 命令不把空格当作分隔符,因此有可能将目录名改为一个
带有空格但不带有引号的子目录名。例如:
cd winntprofilesusernameprogramsstart menu
与下列相同:
请按任意键继续. . .
1.5.1 直接执行不带参数的【cd】,会返回当前工作目录。
有些人可能会觉得这个命令好智障,明明好明显能看到,为啥还要有?
其实在echo回显状态关闭时,工作目录是不会显示在cmd窗口上的。
1.5.2 不切换磁盘,只在当前磁盘“转悠”- 进入文件夹:cd test1test2(进入 test2 文件夹)
- 返回根目录(磁盘目录):cd
- 回到上级目录:cd ..
如果你要切换的目标路径和当前工作目录所在磁盘不同,那么就需要切换磁盘。
方式1:先执行切换磁盘命令(例如D盘对应命令【d:】),然后再用cd命令(例如进入d盘的百度下载文件夹BaiduNetdiskDownload,执行命令【cd /BaiduNetdiskDownload】或【cd d:/BaiduNetdiskDownload】)进入目标目录。
方式2:直接带参数/d执行包括完整目录路径的命令,例如想要进入目标文件夹d:/BaiduNetdiskDownload,可以执行【cd /d d:/BaiduNetdiskDownload】命令。
注意1,方式2中的/d参数是固定的,不论对哪个盘而言都是/d。不是说对于目标目录e:/BaiduNetdiskDownload,就应该执行命令【cd /e d:/BaiduNetdiskDownload】,这是错误的!
注意2,命令【cd d:】是无法切换磁盘至D盘的,虽然它会输出一个d:,但不代表工作目录被切换、。
上面用cd命令切换工作目录,其实是比较麻烦的,最方便的方法还是在资源管理器中进入目标文件夹后,在地址栏中执行cmd即可。
二、文件外部操作——move、copy、del或erase、rename或ren 2.1 移动文件——move
打印move命令的帮助信息,执行命令【move /?】。
我们可以发现,move命令不仅可以将文件从路径A移动到路径B,而且可以在移动的过程中对文件进行重命名,甚至还能对一个文件夹进行重命名。
假如,我的电脑中的【D:BaiduNetdiskDownload】目录和【D:D-desktop】目录下各有一个demo.bat文件。
如果我想要将【D:BaiduNetdiskDownload】目录下的文件移动到【D:D-desktop】目录,我可以执行以下命令【move demo.bat D:D-desktop】,然后cmd窗口中提示是否覆盖,我再执行y,就移动并覆盖成功了。
如果我还想要重命名这个文件为【demo1.bat】,我可以执行命令【move demo.bat D:D-desktopdemo1.bat】。
总结起来就是,如果你在移动一个文件,不想要重命名,那么目标路径中就不用包括文件名(也不需要保留原文件名);如果你想要重命名,就需要包括文件名
参数/y和-y的意思:如果不指定这两个参数之一,就默认是在直接命令中提示、在批处理文件中不提示,如果指定为/y,就都不提示直接覆盖,如果指定为-y,就都提示,可以让你手动选择是否覆盖。
2.2 复制文件——copy打印copy命令的帮助信息,执行命令【copy /?】。
copy的命令在常规用法上和move命令别无二致。
如果只是复制文件到另一个目录,而不更改命名,也不需要在目标路径上包括文件名,例如命令【copy F:directory1test.txt D:directory2】。
如果需要在复制至另一目录的同时,加以重命名,就需要在目标路径包括文件名,例如命令【copy F:directory1test.txt D:directory2test1.txt】。
2.3 删除文件——del或erasedel命令和erase命令等效;但是命令扩展功能开启后,才可用erase命令。
(1)打印del命令的帮助信息,执行命令【del /?】。
(2)假如我们要删除某个文件,直接执行命令【del filepath】,filepath是完整路径。
比如,我们要删除百度网盘下载文件夹下的demo.bat文件,就可以执行命令【del D:BaiduNetdiskDownloaddemo.bat】
注意,虽然没有任何回馈结果表示已经删除,但其实已经删除成功了。
(3)假如要删除某个文件夹,我们可以执行命令【del directory_path】,建议文件夹路径也设置完整。
假设在D盘有一个test文件夹,里面又有一个demo.bat,可以执行命令【del D:test】,而后再用y回复确认删除。
命令执行完毕,我们可以发现目录下的文件是没了,但是文件夹本身还恋恋不舍地待在电脑上。
我猜(够严谨吧...):del命令只能删除指定目录以及子目录下的文件
我又在test文件夹内创建了一个test1文件夹,再用命令【del D:test】实验了一下,果真如此呢!
2.4 重命名文件——rename或renlinux系统中,删除文件/目录的指令是rm。
语法:rm [选项]
- -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
- -f:强制删除文件或目录;
- -i:删除已有文件或目录之前先询问用户;
- -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
- –preserve-root:不对根目录进行递归操作;
- -v:显示指令的详细执行过程。
(1)先打印ren的帮助信息,执行命令【ren /?】
(2) 假如当前工作目录中包括重命名文件,直接用命令【rename filename1 filename2 】即可。
(3)假如当前工作目录中不包括,可以先切换工作目录(cd命令等),然后再用(2)中提到的命令,也可以直接用命令【rename filepath new_filename】。
下面3张图,就是演示如何直接用命令【ren D:testtest1demo1.bat demo2.bat】,把处于目录【D:testtest1】下的demo.bat文件重命名成demo2.bat的。
三、文件内部操作——type、sort 3.1 读取文本文件——type先看一下type的帮助信息。
由此可见,type的作用就是来读取文件的内容的,内容可以参考“以记事本方式”打开的情况,如果是txt、md、bat这种纯文本文件,打开后没有乱码,但如果是doc、excel、exe、jpg、mp3、mp4这种二进制文件,打开后必然是乱码。
type只对纯文本文件有意义,因为如果打开的是乱码,看不懂呀!
读取文本文件最基本的命令格式【type filepath】,尝试打开某bat文件,称心如意。
心不甘地打开某doc文档,看行不?输得一败涂地...
3.2 排序文本文件——sort在Linux系统中,与type命令相对应的是cat命令。
先打印一下sort命令的帮助信息。
(1)最基本的不带任何参数的sort命令——sort filepath 。
假设桌面存在一个tool.txt的文本文件,内容如下:
现在我想要对其进行排序和整理。执行命令【sort D:D-desktoptool.txt】,得到结果如下图。
我们可以发现31在4的前面,说明这个排序算法优先对第一位进行,如果第一位已经决出先后就不再比较。
注意,这个sort命令不会改变原txt文件的内容,只是输出的结果改变了而已,如果想要把已排序好的内容放在新的txt文件中,可以执行重定向命令【sort D:D-desktoptool.txt>D:D-desktoptool
_sorted.txt】。
(2)如果想要从第n位开始排序,通过调整/n参数实现,假如想从第2位开始排序,执行命令【sort /+2 D:D-desktoptool.txt】
(3)如果想要逆序排序,可以添加/r参数,执行命令【sort /r D:D-desktoptool.txt】



