赞
踩
使用批处理命令是日常处理大量重复性操作的便捷方式,例如将大量文件复制到特定目录,改变存储目录进行归类存储,或者批量移动、删除文件或目录等。但当文件存储结构复杂时,批处理的执行效果是否如预期设定,就需要在执行批处理时进行操作过程的日志记录。
假如我想将文件夹中的excel文件批量复制到一个目前不存在的文件夹copiedfile目录下,使用批处理命令,执行结束之后检查执行过程和效果。
获取xlsx文件存储路径,新建批处理bat文件,批量复制到目标路径下。由于我的目标文件夹不存在,使用xcopy命令进行复制,复制时若目标路径不存在则建立对应文件夹目录。
执行上述批处理文件会发现2个问题:
(1)每执行一条复制命令时终端都会提示对复制的类型进行判断,是文件还是目录?如果少了还可以反复点击F键来确认,但是如果要复制成千上万个文件,逐个确认就不现实了。
(2)命令执行过程中如果有异常,难以发现和检查。需要记录处理日志。
对命令进行修改,前面加上" Echo f | "来自动确认复制类型为文件,后面加上" >> log.txt “将执行过程中的日志信息记录到文件。
可以看到9个文件已经复制到了目标目录下。但是缺少了2、3、4月份的3个文件。
打开日志文件来检查核对。
可以看到其他文件复制过程正常结束,2、3、4月文件未成功复制。再回到源文件夹下分析原因。
仔细观察会发现,2、3、4月份3个文件名,在后括号)与后缀名之间多了一个空格,导致执行复制命令时无法找到指定名称的文件,所以复制失败。输出日志的目的正在于此。
PS:有朋友可能认为这么简单的问题,直接用鼠标选择12个文件,新建文件夹,Ctrl+C,Ctrl+V不就解决问题了。其实为了说明记录日志的作用,这个例子是进行了简化的。实际工作中,要复制的源文件可能不会这么简单的保存在同一路径下,可能要将分布在不同目录下的众多文件进行复制、删除等操作。手工处理就会效率低下,且容易错漏。
如何批量获取众多不同目录下的文件名和文件存储位置呢?下一篇与大家分享一键提取文件列表的方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。