Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 删除超过一个月的文件,但将每月第一天创建的文件从Windows 2008中的文件夹中排除_Batch File - Fatal编程技术网

Batch file 删除超过一个月的文件,但将每月第一天创建的文件从Windows 2008中的文件夹中排除

Batch file 删除超过一个月的文件,但将每月第一天创建的文件从Windows 2008中的文件夹中排除,batch-file,Batch File,我需要删除所有超过30天的文件,除了在Windows 2008 R2中每个月的第一天创建的文件。这些文件每天都在文件夹中创建,并包含一个日期标记。我可以分别使用“forall”和“robocopy”轻松删除/移动所有超过30天的文件,但我不知道如何排除在每个月的第一天创建的文件被删除。有着几乎相同的问题,我发布了适合您情况的解决方案 希望它能帮助将来的人 非常感谢上面的大卫·鲁曼,这几乎是他的答案。 对不起,我还不能把他改造好 REM -- moving 1st of month folders

我需要删除所有超过30天的文件,除了在Windows 2008 R2中每个月的第一天创建的文件。这些文件每天都在文件夹中创建,并包含一个日期标记。我可以分别使用“forall”和“robocopy”轻松删除/移动所有超过30天的文件,但我不知道如何排除在每个月的第一天创建的文件被删除。

有着几乎相同的问题,我发布了适合您情况的解决方案

希望它能帮助将来的人

非常感谢上面的大卫·鲁曼,这几乎是他的答案。 对不起,我还不能把他改造好

REM -- moving 1st of month folders to temp\
forfiles  /M *_FULL_20*01_*.csv  /C "cmd /c move @path temp\ "

REM -- deleting files older than 30 days
forfiles  /M *_FULL_20*.csv  /D -30   /C "cmd /c del /s /q @path "

REM -- bringing back temp\ to this folder
forfiles  /P temp\  /C "cmd /c move @path ..\ "
我把我的答案翻译成文件。
若要删除文件夹,请使用“rmdir”而不是“del”

的可能副本。请提供一个或两个带有日期标记和日期格式的示例文件名。最简单的解决方案可能是首先将这些文件移出(使用for循环只检查日期为1的文件),运行清理,然后将其移回。这是我的建议,对文件结构没有任何细节。文件名如-CIL2128_A_18_FULL_20130901_2335.csv、CIL2128_A_18_FULL_20130902_2332.csv、CIL2128_A_18_FULL_20130903_2336.csv、CIL2128_A_18_FULL_20130904_2335.csv。因此,需要从deletionHi David中排除文件CIL2128_A_18_FULL_20130901_2335.csv。请编写循环,以便仅将日期标记为“01”的文件移动到单独的位置,因为我不是程序员,而是管理员。谢谢