批处理文件复制多个.txt文件,其中包含从多个目录到一个目录的日期限制

时间:2012-12-11 18:10:41

标签: batch-file

我正在尝试使用批处理文件将分散在一个主目录的多个子目录中的所有.txt文件复制到另一个目录中。我对此网站进行了研究,并在此链接中找到了许多答案:batch file Copy files with certain extensions from multiple directories into one directory。就像Jay下面的代码一样:

set dSource=C:\Main directory\sub directory
set dTarget=D:\Documents
set fType=*.doc
for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%"') do (
copy /V "%%f" "%dTarget%\" 2>nul

我的问题是如何在此链接上修改此代码或其他代码以批量复制带有时间戳的文件,例如我只想复制从2012年1月1日到2012年11月1日创建的.txt文件。

1 个答案:

答案 0 :(得分:1)

我建议在驱动器的目录树中查找和移动* .txt文件,或整个驱动器,甚至是在确定时间段内具有上次修改日期的多个驱动器:

  1. 启动 Windows资源管理器
  2. 点击按钮搜索
  3. 打开用于查找文件和文件夹的高级搜索选项。
  4. 选择/输入按上次修改日期搜索文件。
  5. 输入两个日期以指定时间段或选择时间段。
  6. 运行搜索。
  7. 在搜索结果中选择所有找到的文件,例如使用Ctrl + A.
  8. 按Ctrl + X标记要删除(移动)的找到的文件。
  9. 打开要移动文件的文件夹。
  10. 按Ctrl + V粘贴文件(移动它们)。
  11. 那就是它。

    如果不应使用调度任务定期执行此查找+移动文件作业,则无需为此任务编写批处理作业。

    使用Windows资源管理器在一定时间内对文件执行此类高级查找的确切步骤取决于Windows的版本。例如,参见计算机提示

    当然,有许多免费软件和共享软件工具支持根据各种搜索标准查找文件,例如指定时间段内的上次修改日期并移动它们。

    嗯,这并没有真正回答这个问题,因为它不包含完成工作的批处理代码。所以我用另一个问题回答这个问题:

    为什么考虑为这样的任务编写批处理文件很难适应不同的日期,如果包括Windows资源管理器在内的许多GUI应用程序通过简单的用户输入而不需要编码技能并因此非常容易使用,并且find + move必须只进行一次或不时更改标准吗?