You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows批处理脚本:如何实现移除字符串中'-[0-9]'及右侧内容的需求

解决批处理中移除首次"-数字"右侧内容的问题

我来帮你搞定这个批处理字符串截断的需求!你的原代码是把所有-替换成|后取第一个部分,这显然不符合你要找首次出现-+数字后截断的逻辑。下面是修改后的完整脚本,以及关键部分的解释:

修改后的完整脚本

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set "RawPath=%~dp0"
FOR /F "USEBACKQ TOKENS=*" %%M IN ("%RawPath%/mods") DO (
    Set "fileNameCheck=%%M"
    :: 初始化处理后的字符串
    Set "stripped="
    :: 按"-"分割第一个部分和剩余内容
    for /f "tokens=1* delims=-" %%a in ("!fileNameCheck!") do (
        Set "stripped=%%a"
        Set "remaining=%%b"
        :check_next_part
        if not defined remaining goto end_check
        :: 检查剩余内容的第一个字符是否为数字
        Set "first_char=!remaining:~0,1!"
        echo !first_char! | findstr /r "[0-9]" >nul
        :: 如果是数字,停止拼接;否则继续拼接下一个部分
        if not errorlevel 1 goto end_check
        for /f "tokens=1* delims=-" %%c in ("!remaining!") do (
            Set "stripped=!stripped!-%%c"
            Set "remaining=%%d"
        )
        goto check_next_part
    :end_check
    )
    :: 输出处理后的字符串,替换原有的%%A为!stripped!
    Echo [46m!stripped![0m
    if exist "%~dp0!stripped!*.jar" (
        if exist "%~dp0%%M" (
            REM echo [42mUp to Date[0m [32m!stripped! "%~dp0%%M"[0m
        ) else (
            for %%j in (*.jar) do (
                echo %%j |find "!stripped!" >nul
                if not errorlevel 1 (
                    echo [41mDifferent Version[0m [31m%%j [0m[90mNewer version[0m [32m%%M[0m
                )
            )
        )
    ) else (
        REM echo [31mMissing !stripped![0m
    )
)
pause

关键逻辑解释

  1. 分割与拼接循环:

    • 首先用for /f把字符串按-分割成第一个部分%%a和剩余内容%%b,初始化stripped为第一个部分。
    • 进入循环检查剩余内容:每次取剩余内容的第一个字符,用findstr判断是否为数字。
    • 如果是数字,直接跳出循环,此时stripped就是我们要的截断结果;如果不是,就把剩余内容的第一个部分拼接到stripped后,更新剩余内容,继续循环。
  2. 替换原代码中的%%A:
    把原脚本中所有用到%%A的地方替换为!stripped!,确保使用处理后的正确字符串。

这样修改后,就能完美实现你要的效果:

  • fruit-apple-1.5.6 → fruit-apple
  • vegtable-sla-mc5-6.5-16515 → vegtable-sla-mc5
  • extra-huh-9.5-511-515 → extra-huh
  • extra-3.2 → extra

内容的提问来源于stack exchange,提问作者GreenMaskEnergy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 04:34:05