批处理文件[计划任务]复制rot目录下的所有.txt文件

时间:2014-12-08 12:10:05

标签: windows batch-file batch-processing

我在许多子目录中都有.txt文件,这些目录不断接收新文件[日志],但旧文件不会被删除。

我需要将各个子文件夹下的文件与包含所有.txt文件的文件夹保持同步。由于我们有很多文件并且它们一直在创建而不是被删除,我想知道是否有一个.bat文件代码我可以使用并安排每分钟运行以保持这些文件同步?以某种方式使用robocopy会更好吗?

1 个答案:

答案 0 :(得分:0)

根据您需要运行多少台计算机,我建议使用Microsoft SyncToy2.1等同步文件,然后在批处理文件中正常删除。

例如,为每个文件夹创建一个文件夹同步对,然后使用批处理文件然后删除来调用该进程:

“C:\Program Files\SyncToy 2.1\SyncToyCmd.exe -R"
/wait
Del c:\PathToTxtFiles\*.txt /f
Exit

使用-R开关调用“SyncToyCmd.exe”将告诉它同步所有文件夹对,然后运行删除命令以清除所有旧文件。 HowToGeek对SyncToy如何工作以及如何根据您的情况进行最佳设置做了很好的解释: http://www.howtogeek.com/howto/25046/schedule-synctoy-to-run-automatically-with-task-scheduler-in-windows-7/

编辑:我没有注意到你说你不想删除它们(我没有像我应该那样关注)

在这种情况下,我可以建议两个批处理文件将一个sync.bat命名为以下两行:

XCOPY "%1" "%2" /D /I %3
XCOPY "%2" "%1" /D /I %3

和第二个用以下行命名的任何东西:

SYNC "C:\My Project" "\\DELL\My Project" /S

目的是第二个将使用您放在第二个中的参数调用第一个(即它将xCopy称为“C:\ My Project”到服务器共享“\ DELL \ My Project”)。 / D开关告诉它将较新的文件从源复制到目的地,如果你不想双向同步,你可以删除第二行; /我告诉它目的地是一个目录(它让它不会询问它是你正在复制的目录或文件)。你可以在第二个上留下/ S并在第一个中省略%3。

Tech-Pro.net有一篇文章很好地解释了它(使用我使用的相同代码): http://www.tech-pro.net/howto_033.html