我在Windows批處理文件中有以下要求。我搜索了很多,但找不到符合我要求的明確答案。根據文件名中的日期的壓縮文件
我需要根據日期壓縮一些文件/文件夾(文件/文件夾名稱將包含此日期)。日期格式爲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
內容保存到一個文件 - 採取1號線從文件名與第二個文件匹配
*
- 列表單獨更換日期部分
- 刪除在第一檔 匹配的行
- 根據日期壓縮,除了從第二個文件開始的第2行
- 然後轉到第一個文件的第二行等等。
我在這裏遇到的問題是我不知道如何用*
替換日期,並在文件中進行搜索。
請注意PowerShell不是一個選項。我需要使用批處理或VBScript或兩者兼而有之。
而不是頂部2,可能是最小年齡的文件夾?那麼'forfiles'或'robocopy'應該能夠做到這一點。 – Paul
很難找到一個模式,沒有外部正則表達式工具 – Paul
*在我看來,批處理*是錯誤的選擇(除非你也可以使用第三方工具);只是支持某種正則表達式的'findstr',但是這有幾個問題,並且文檔記錄很糟糕...... – aschipfl