在如今这个图形用户界面发展的今天,普通用户对命令行的依赖度不再那么高,但是对于从事相关行业的人来说,其拥有不可忽视的作用,同时对于使用命令行操作系统的人来说,对命令行更是不陌生,在常用的windows系统中也是可以编写命令行脚本的,那就是cmd命令行。
cmd(Command Prompt)是指命令提示符即在操作系统中,提示命令输入的一种工作提示符。不同的操作系统类型不同,以windows为例介绍cmd.exe命令行程序,是微软windows系统基于windows上的命令解释程序,类似于Dos操作系统。
在win7和XP操作系统有多种方式打开cmd窗口,这里介绍三种方式。
1、按下键盘上的win键(微软logo),在搜索框输入cmd回车即可打开,默认为从C:/users/system32路径;
2、按下win+R键,输入cmd,同理打开cmd;
3、有时候需要在特定目录打开cmd窗口,这时可以打开相应文件夹,在路径栏输入cmd回车即可,如图1.
沿用原生的Dos命令,可以通过help来查看windows带有的原生命令,只需要在cmd窗口输入help指令即可,一般来说,相应的命令都带有简单的文档描述,还有可选参数,如图2:
可以看到,相应的命令之后带有简单描述,以help指令为例,它可以提供windows命令的描述,简单来说,就是可以调用内部文档来简单指明指令的作用,格式为:
help [cmd]
比如我们查看用help来查看help指令的作用,如图3:
可以看到help命令就一个可选参数,就是命令,输入后可以查看指令的作用。
同理使用help dir查看dir指令的作用--可以显示目录中的文件和子目录列表,可以看到有很多可选命令 ,只输入dir时,默认显示本路径下的文件和文件夹;加入可选参数后如dir /ah命令就表示显示当前路径下的隐藏文件---需要知道的是计算机中目录也是文件。其他的命令不作过多介绍,使用help指令可以理解一部分用法,这里介绍一些常用的命令。
1、copy命令:复制命令,就是键盘的ctrl+c-v,命令格式是:
copy res des
即把文件res复制一份且文件名为des,其中文件可以指定路径如copy C:/a.txt D:/b.txt.
2、dir显示路径下的文件,其中dos命令也支持通配符,即“.”代表一字符,“*”代表若干字符,还有其它用法,这里主要介绍“*”通配符。例如当你想要在一个大量文件的目录下筛选出所有的docx文件,目录中可能含有.pdf文件,.png文件等等,这会给筛选带来难度,因此可以使用dir *.docx就会匹配所有的docx文件并显示到屏幕上。
3、写入文件,可用echo和cd命令,格式为:
echo/cd [content] .>file(如a.txt)
其中文件存在时会用content覆盖源文件,文件不存在时会自动创建一个文件并写入内容,如图4.
4、rename指令,格式为rename a.txt b.txt即把a文件名改为b文件名,对其他文件处理类似。但注意的是文件名中不可存在空格,存在空格就会打乱命令格式,导致命令实现出错,这就是文件命名需要规范的原因。
5、cd命令,cd就是change directory的意思,就是可以切换工作路径,比如从C:/切换到C:/Users,在C:/下执行以下指令即可。cd Users
那么在图形化界面占绝对优势的今天,这些繁杂的命令有什么用处呢?答案是实现简单的批处理,来看一个实例:假如现在你收到了一堆文件,命名十分不规范,你需要把文件名按结构化的形式命名,例如在原有文件名的基础上加上公司的名称,首先一步步改必然十分麻烦,此时可以借助于批处理文件--批处理文件就是用cmd指令写的脚本,可以执行大量重复的工作而减轻工作负担。
此实现需要借助于excel表格实现,因为我们需要在原有文件名的的上加上公司名称,使用excel方便我们附加上名称,这是cmd命令不能实现的。
1、假如有如下文件目录,有众多的文件且命名不规范
2、前面已经得到dir指令可以快速获得文件名,而使用.>可以写入文件,同时rename指令可以重命名文件,所以我们可以把文件名都写入一个excel表格,在excel表格完成 批量附加后执行批处理命令就可以完成重命名。其中dir /b命令是只获取文件名,使用
dir .b .>rename.xlsx
就是把所有文件名写入到rename.xlsx文件中。如图5
就可以得到一个xlsx文件和文件内容如下:
借助于excel处理,我们用 =""&A1&"+你的公司名称"&RIGHT(A1,4)&""对第一行单元格内容提取并放到B1单元格,使用填充柄一并处理所有文件就可以得到所有修改后的文件名,而后因为要使用rename指令,所以再在C1单元格使用
"rename "&A1&" "&B1&""
就会得到命令形式,如下:
由于部分文件有空格,这是会导致错误的,所以我们用不含空格的文件重命名作为演示,将不含空格的文件重命名指令写入一个txt文件,并更改此文件为批处理文件即将后缀更改为.bat或.cmd即可,然后双击运行该文件
结果如下,其中前面含有的后缀名可以通过excel删掉(字符截取即可),功能实现。
对于含有空格的文件名,同样可以在excel中使用替换直接替换掉空格然后执行上述操作即可,不作赘述。
为提高兼容性,同时也可以使用python来批处理文件重命名,先获取所有文件名,做名称分割,而后使用os.rename()改变文件名即可。这涉及编程知识,也需要安装python开发环境。
获取路径下的文件名的Python代码如下所示:
1 # -*- coding: utf-8 -*-
2 import os
3
4 def listdir(path, list_name):
5 for file in os.listdir(path):
6 file_path = os.path.join(path, file)
7 if os.path.isdir(file_path):
8 listdir(file_path, list_name)
9 elif os.path.splitext(file_path)[1]=='.jpeg':
10 list_name.append(file_path)
python获取文件并修改文件名的代码如下:
# -*- coding: utf-8 -*-
import os
#设定文件路径
path='C:\\' #这里的文件路径根据具体情况而定,即你的文件在哪个位置
i=1
#对目录下的文件进行遍历
for file in os.listdir(path):
#判断是否是文件
if os.path.isfile(os.path.join(path,file))==True:
#设置新文件名
# new_name=new_name #这里的new_name就是你需要修改的文件名,视具体情况而定
#重命名
os.rename(os.path.join(path,file),os.path.join(path,new_name))
i+=1
#结束
print ("End")
python编程修改需要具体情况具体分析,不可一成不变,这里不再作举例介绍。