我在Windows批处理文件中有以下要求。我google了很多,但找不到符合我要求的明确答案。
我需要根据日期压缩一些文件/文件夹(文件/文件夹名称将包含此日期)。日期格式为YYYYY-MM-DD
。有许多文件组,只有日期更改。
例如:
第1组:
ABCE2GDX2015-10-07ACCEQ
ABCE2GDX2015-10-06ACCEQ
的 ABCE2GDX2015-10-05ACCEQ
ABCE2GDX2015-10-04ACCEQ
第2组:
HRCDGHHGGFGHJJHGGG2015-10-0625
HRCDGHHGGFGHJJHGGG2015-10-0425
的 HRCDGHHGGFGHJJHGGG2015-10-0225
HRCDGHHGGFGHJJHGGG2015-09-3025
在上面的示例中,我需要压缩然后删除除前2位之外的文件/文件夹。
HRCDGHHGGFGHJJHGGG2015-10-0225 -
应放在 2015-10-02.zip
中
HRCDGHHGGFGHJJHGGG2015-09-3025 -
应放在 2015-09-30.zip
中
ABCE2GDX2015-10-05ACCEQ -
应放在 2015-10-05.zip
中
ABCE2GDX2015-10-04ACCEQ -
应放在 2015-10-04.zip
我不应该碰到的剩余文件。
如何实现这一目标?我目前的想法是
dir
个内容列入文件*
我在这里遇到的问题是我不知道如何单独用*
替换日期,并在文件中搜索。
请注意PowerShell不是一个选项。我需要使用批处理或VBScript或两者兼而有之。
答案 0 :(得分:0)
在VBScript中,您可以在文件名上使用正则表达式匹配。
Set fso = CreateObject("Scripting.FileSystemObject")
Set re = New RegExp
re.Pattern = "(\d{4}-\d{2}-\d{2})"
For Each f In fso.GetFolder("C:\some\folder").Files
For Each m In re.Execute(f.Name)
zipfile = m.Submatches(0) & ".zip"
'add file f to zipfile here
Next
Next