用特定文件名称Windows 2012 R2解压缩目录和子目录中的所有文件



我是PowerShell和批次脚本的新手。我有一个dir结构为

 Z:abcdata1dump data1 (2018 01)dumpdata1_1705_as_tap.zip
 Z:abcdata2dump data2 (2018 01)dumpdata2_1801_as_tap.zip
 Z:abcdata3dump data3 (2018 01)dumpdata3_1802_as_tap.zip
 Z:abcdata4dump data4 (2018 01)dumpdata4_1803_as_tap.zip

我想解开所有具有通用名称dumpdata_yymm_as_tap.zip的1000多个文件,如上所述。我想将所有这些都解压缩到其他目录。

f:data1dumpdata1_1705_as_tap.zip
f:data1dumpdata2_1801_as_tap.zip

在保存其名称时,我希望它们在Sub_directory文件夹中的特定日期说(2017 05(之后。我们如何在批处理文件或PowerShell中添加REGEX以仅在(2017 05(之后提取(2018 04(之后的数据。我已经安装了7个zip,但不能在上面安装python。

我们通常不给出代码,除非用户至少尝试编写自己的代码。你知道整个人,给男人一条鱼或教男人钓鱼哲学。

@echo off
setlocal EnableDelayedExpansion
REM Find all zipped dumpdata files
FOR /R Z:abc %%G IN (dumpdata*_*_as_tap.zip) DO (
    REM extract date from folder name date is surrounded by parentheses.
    FOR /F "TOKENS=2 delims=()" %%H IN ("%~pG") DO (
        SET "fdate=%%~H"
        REM remove space from date
        set "fdate=!fdate: =!
        REM check if date is between two dates
        IF !fdate! GTR 201705 IF !fdate! LEQ 201804 (
            REM 7zip command here.  %%G is your zip file name
        )
    )
)

最新更新