提取部分文件夹名称(在文件夹中)并从中获取最大值

时间:2017-06-26 14:40:22

标签: batch-file cmd

文件夹名称包含2个序列号的文件夹。我想获取所有文件夹名称并选择最大HF

R100_20170501_HF300_check1234

R200_20170621_HF122_TEST1234

R200_20170622_HF123_DF_25439

R300_20170622_HF99_DF_25439

基本上我想在HF和下划线之间使用MAX HFXXX_ - 在这种情况下返回300.

3 个答案:

答案 0 :(得分:1)

@echo off
setlocal enabledelayedexpansion
set max=0
for /f "delims=_F tokens=4" %%a in ('dir R* /b /ad') do if %%a gtr !max! set max=%%a
dir /b /ad *_HF%max%_*

此脚本会检查所有文件夹,并在前三个下划线或F后保留编号最大的文件夹。这意味着如果在HF之前文件名中有F的可能性,它将无法可靠地工作。

答案 1 :(得分:1)

在" _HF"之后解析数字。并找到最大值。

from django.utils.log import DEFAULT_LOGGING

DEFAULT_LOGGING['handlers']['console']['filters'] = []

答案 2 :(得分:0)

我决定将其包括在内,以涵盖未来读者更喜欢非PowerShell解决方案。

@ECHO OFF
FOR /D %%A IN ("*_HF*_*") DO CALL :SUB "%%A"
ECHO [%MAX%]
PAUSE
GOTO :EOF

:SUB
SET "$=%~1"
IF "%XXX%" GTR "%MAX%" SET "MAX=%XXX%"
SET/A "XXX=%$:*_HF=%" 2>NUL
GOTO :EOF