【问题标题】:Batch File to move files with the same string of characters into another folder with that string name批处理文件将具有相同字符串的文件移动到具有该字符串名称的另一个文件夹中
【发布时间】:2013-01-06 03:01:18
【问题描述】:

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

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

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

【问题讨论】:

  • 我们通常希望人们在提出问题之前先做好功课。本网站是为了帮助您完成您的工作,而不是为您完成。下次您提出问题时,请说明您尝试过的方法以及您特别遇到的问题。 (这次仍然欢迎您指定。)

标签: date batch-file directory filenames


【解决方案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!"
)

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

正如所写,脚本会遍历 current 目录中的 .csv 文件。这由for 循环中的掩码指定:*.csv。您可以更改掩码以包含特定的处理路径,例如C:\path\to\*.csv

目标驱动器也被硬编码并假定为D:。如果您需要使用不同的驱动器,请更改脚本的相应条目。

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

command /?
help command

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多