批处理文件将具有相同字符串的文件移动到具有该字符串名称的另一个文件夹中

时间:2013-01-06 03:01:18

标签: date batch-file directory filenames

我使用的是Windows 7企业版,我需要在过去365天内每天处理大约20个文件。

所有文件都在同一目录中。每个文件名还包含文件创建的日期。日期的格式为MM-DD-YYY,从文件名的第29个字符开始。这些文件的扩展名为.csv

我需要创建一个批处理文件,将具有相同日期的所有文件移动到他们自己的文件夹中,并移动到我计算机上的另一个驱动器上。

1 个答案:

答案 0 :(得分:1)

@echo off
setlocal EnableDelayedExpansion
for %%a in (*.csv) do (
   set fileName=%%~a
   set datePart=!fileName:~28,9!
   if not exist "D:\!datePart!" md "D:\!datePart!"
   move "%%a" "D:\!datePart!"
)

此脚本提取每个文件名的日期部分,并将其用作要将文件移动到的文件夹的名称。如果该文件夹不存在,则创建该文件夹,然后将文件移动到该文件夹​​。

如上所述,该脚本会迭代当前目录中的.csv个文件。这由for循环中的掩码指定:*.csv。您可以更改掩码以包含要处理的特定路径,例如C:\path\to\*.csv

目标驱动器也是硬编码的,并假设为D:。如果需要使用其他驱动器,请更改脚本的相应条目。

可以通过使用以下任一语法从命令提示符调用命令的内置帮助来获取有关此脚本中使用的每个命令的详细信息:

command /?
help command