欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【批处理】Windows下利用批处理实现快速复制文件并修改文件名

程序员文章站 2022-06-12 16:45:47
...

1. 背景

  我们可能经常会遇到这样的情况,想要通过快速的方式复制多个文件,而这多个文件呢,又需要以不同的名字命名。如果,仅仅是通过人力手动的复制和修改,那样将会是很慢的,而且是很无聊的。当然,大家也会通过编写程序的方式实现文件的复制,以及名称的更改。但是这些也需要一定的工作量,还是不够方便。这不,本文就此问题给出了一个快速的解决方案。

2. 具体实施

1. 创建一个数据文件

  数据文件以data.txt命名。

学号,姓名
01,张三
02,Tom
03,Rose

2. 执行命令

  命令行下执行以下命令。

for /F "skip=1 tokens=2 delims=," %i in (data.txt) do @copy nul %i.txt

  如果上面命令想用到多次,可创建一个批处理文件,并写入下面的命令。

for /F "skip=1 tokens=2 delims=," %%i in (data.txt) do @copy nul %%i.txt

  这两者的不同在于%%i%i多了个百分号,%用于转义。
  若需要复制一个具体的文件,可将nul改成具体文件的路径即可。
注意:上述命令需要和上面的数据文件在相同目录下执行。

3. 命令解释

  for命令详细说明可以通过命令行获取,这里仅解释上面使用的内容。
  /F说明可指定更细致的配置,如"skip=1 tokens=2 delims=,"等。
  skip=1表示跳过第一行,tokens=2表示读取第2列,这里对应的是姓名列,delims=,指明每列以逗号分隔。%i 表示循环变量。in (data.txt)表示读取的文件,文件可以包含多个。
  do后面指定循环体中具体执行的命令,这里利用copy命令将nul(代表一个空设备)复制到%i.txt文件。而这个文件名就是data.txt中的姓名加上.txt后缀构成。