我是PowerShell和批处理脚本的新手。
我有一个dir结构 Z:\abc\data1\dump data1 (2018 01)\dumpdata1_1705_as_tap.zip
Z:\abc\data2\dump data2 (2018 01)\dumpdata2_1801_as_tap.zip
Z:\abc\data3\dump data3 (2018 01)\dumpdata3_1802_as_tap.zip
Z:\abc\data4\dump data4 (2018 01)\dumpdata4_1803_as_tap.zip
我想解压所有1000多个文件,所有这些文件都具有公共名称dumpdata_yymm_as_tap.zip,如上所述。我想将所有这些解压缩到不同的目录,例如。
f:\data1\dumpdata1_1705_as_tap.zip
f:\data1\dumpdata2_1801_as_tap.zip
虽然保留了它的名字,但我希望它们在sub_directory文件夹中的特定日期之后说(2017 05)。 我们如何在批处理文件或powershell中添加正则表达式,以便仅在(2017 05)到(2018 04)之后提取数据。 我安装了7-zip,但无法在其上安装python。
答案 0 :(得分:0)
除非用户至少尝试编写自己的代码,否则我们通常不会发出代码。你知道整体,给一个人一条鱼或者教一个人养鱼哲学。
@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
)
)
)