用好命令行 高效重命名文档
2022-05-30俞木发
俞木发
前些年由于公司网站所用的服务器不支持中文,因此上传的全部文件均使用的是英文名。最近服务器进行了升级,已经支持中文文件名,为了方便访问者查看和下载这些文件,领导要求将这些文件名批量更改为中文名称,并且需要使用对应文档中的首行字符作为文件的命名依据。对于这样的要求,可以借助Windows 10自带的命令行快速地完成。
1需求分析
对于文件的重命名,最快速的方法是使用ren命令制作批处理来完成。不过,在本例中,重命名的名称需要使用每个文档中的首行字符,因此我们要先获取文档中的首行字符,然后再结合ren命令来操作。
2将DOCX文档批量转换为TXT文档
在Wi n d ows 10中可以借助Power Shel l的CAT命令提取TXT文件中的首行字符。这便需要先将DOCX文档转换为TXT文档。假设需要转换的文档均保存在“D:\work”中。首先到“https://share.weiyun.com/plleQcQr”下载所需的t x t.vbs脚本文件,使用记事本程序打开后可以看到转换代码(图1)。
接着将下载的脚本文件复制到“D:\work”中并双击运行,这样在该目录中即可生成和源文件同名的TXT文件了(图2)。
3批量提取TXT文件指定行的内容
假设需要提取“D:\work”中的所有TXT文件,提取的内容保存在“D:\a.txt”中。
先在任务栏的搜索框中输入“Power Shell”,以管理员身份启动Windows PowerShell,接着在打开的窗口中输入命令“cat d:\work\*.txt -TotalCount 1>>d:\a.txt”并回车执行,这样“D:\work”中要提取的所有TXT文件的第一行内容就会保存在“D:\a.t xt”文件中了(图3)。
如果需要提取的字符不是首行的内容,那么就需要针对每一个文件进行提取(不能使用“*.t x t”通配符)。以提取上述的T X T文件的第二行内容为例,假设提取的内容需保存在“D:\b.txt”中。启动记事本程序并输入下列的代码,每个文件输入一行代码,每行代码只要更改其中的文件名称即可(图4)。
接着复制上述的代码,将其粘贴到WindowsPowerShell窗口中运行,这样每个TXT文档的第二行内容就会输出并保存在“D:\b.txt”文件中了。
命令解释:
“(cat d:\work\1.txt -TotalCount 2)[-1]”命令表示读取指定TXT文档前2行的内容,加上小括号表示将读取的内容作为一个数组,其中“[-1]”表示读取数组元素的最后一个值。因为数组只有2行,所以最后一个值就是第2行的值。读取其他行内容的代码类似,如第三行的内容则需要将代码中的2更改为3,依此类推。
4复制DOCX文件地址信息
在文件资源管理器中打开“D:\work”,然后点击“类型”,将文件按照类型排序,接着按住Ctrl键并依次選中各.DOCX文件,再右击选择“复制文件地址”,将文件地址信息复制到剪贴板中(图5)。
5制作重命名批处理
启动记事本程序并新建文档,然后将上述复制的地址信息粘贴到文档中。点击“编辑→替换”,将“"D:\”替换为“ren "D:\”(图6)。继续将“docx”替换为“docx ”(后面添加一个半角空格),然后保存为“d:\c.txt”备用。
同上,继续打开“D:\a.t xt”,将文件中的“书”替换为“书.docx”,接着依次将每行替换好的内容粘贴到c.txt中对应文件名的行后,完成批处理的制作(图7)。
6批量重命名
复制图7所示左侧窗口中的所有内容,接着启动命令提示符窗口,右击并选择“粘贴”,然后执行这些命令,完成“D:\work”中所有Word文档的重命名操作(图8)。
完成上述的操作后,将“D:\work”中的所有Word文档上传到公司网站服务器中即可。