我们经常会执行一些批量任务,比如需要为每个员工建立同名文件夹、批量解压多个加密文件、生成相同的面试通知文本等。对于这样的批量操作,只要借助系统自带的FOR命令即可完成。
一、批量生成指定名称的文件夹或文件
为了方便整理员工信息,人事部门需要在“E:\员工资料”下生成以员工名字命名的文件夹和对应的.xlsx文件。
1. 生成员工名字素材
打开保存员工资料的Excel文档,然后将员工名字列内容复制,接着启动记事本程序新建文档,粘贴员工名字到文档中,保存为“E:\2.txt”。
2. 生成文件夹
启动命令提示符并输入命令“for /f "delims=" %i in (e:\2.txt) do md E:\员工资料\%i”,回车执行命令。
代码解释:
“for /f”表示解析文本,读取字符串。“delims=”表示分割标示属性,“=”后面的字符作为分割集中的标记,这里为空。“in (e:\2.txt) do md”,表示依次读取指定文件的行字符串,并将其赋值给变量i,然后通过“do”后面的命令依次读取变量完成操作。
3.生成文件
如果要创建以员工名字命名的文件,输入并执行命令“for /f "delims=" %i in (e:\2.txt) do fsutil file createnew e:\员工资料\%i.xlsx 00”。
代码解释:
使用“fsutil file createnew e:\员工资料\%i.xlsx 00”,创建字节为0的xlsx文件,文件名以变量值依次命名,其他代码含义同上。
4.查看结果
完成上述的操作后,打开“E:\员工资料”,可以看到其中已经自动生成了以员工名称命名的文件夹和“xlsx”文件,文件夹和文件名称与“E:\2.txt”的内容一一对应。
二、批量遍历密码解压文件
为了保护隐私,有些朋友会将电脑上的私人文档使用加密方式压缩保存。虽然使用的是固定的几个压缩密码,但是时间长了可能会忘记具体使用的密码。这样在需要解压这些文件的时候,常规的操作是不断手动尝试输入密码解压,而借助“FOR命令+7ZIP”则可以自动遍历密码并进行解压。假设需要使用的密码是“123456”、“123457”、“123458”,需要解压的加密文件是“E:\1.zip”,文件解压到“E:\解压文件”中。
1.设置解压命令
在记事本中一行输入一个密码,并保存为“E:\pass.txt”。按提示安装7-Zip,启动命令提示符输入并执行命令“for /f "delims=" %i in (e:\pass.txt) do "C:\Program Files\7-Zip\7z.exe" x "e:\1.zip" -p%1 -o"E:\解压文件" -y”,如果有更多的文件要解压,按照相应的格式依次添加。
代码解释:
使用7-Zip的命令行自动解压文件,“-p%1”表示依次读取变量数值作为解压密码尝试解压文件,当获取到正确解压密码时,文件会被解压到“E:\解压文件”中。其他代码的解释同上。
2.查看解压结果
打开“E:\解压文件”可以看到解压后的文件,免去了原来需要手动不断输入密码才能解压的繁琐。
三、自动生成指定格式的文本
人资部门经常需要生成一些指定格式的文本通知面试,如类似“XXX请在XX日XX点到我司参加复试”,使用FOR命令同样可以快速生成类似的文本。
1. 生成通知名单
打开保存面试人员名单的Excel文档,文档包含复试人员名单、复试日期和复试时间三列内容,接着按复试日期升序排列。然后复制三列的内容,将其粘贴到记事本新建文档中,保存为“E:\通知.txt”。
2. 运行命令
在命令提示符窗口中输入并执行“for /f "skip=1 tokens=1,2,3 delims= " %i in (e:\通知.txt) do echo %i请在%j日,%k到我司参加复试。 >>e:\1.txt”。
命令解释:
“skip=1”表示跳过文件的首行(不需要标题行内容),“tokens=1,2,3 delims= ”表示读取文件的1、2、3列内容,“delims=”后的分割标记是TAB键输入(默认从Excel复制的列分割符),然后将3列内容依次作为变量i、j、k和固定字符连接,最后将内容显示在屏幕上并追加输出到“E:\1.txt”文件中。
3. 查看结果
完成上述的操作后,打开“E:\1.txt”,可以看到已经自动生成通知消息文本,按提示依次复制并发送给面试者即可。
|