CMD 循环提取字符串

问题描述 投票:0回答:1

我有这个批处理文件代码 CMD。

@echo off

SETLOCAL ENABLEDELAYEDEXPANSION

SET String=Ab,cd,Efgh

SET Length=0

FOR /L %%A IN (0,1,8100) DO (

                               IF NOT "!String:~%%A,1!"=="" (SET /A Length = %%A + 1)

                              FOR /F "tokens=%Length% delims=, " %%G in ("%String%") do (echo %%G)

)

ENDLOCAL

有人可以帮助我,抱歉我的英语不太好。

问候 亚历山德罗(意大利)
** 我想自动提取由“,”分隔的单个字符串,但不起作用。 **

Ab cd Efgh

string loops cmd extract
1个回答
0
投票

主要问题在于逻辑不必要的复杂性。例如,FOR /L %%A IN (0,1,8100) 循环在相当大的范围内迭代。将字符串拆分为多个部分确实不需要它。此外,使用 tokens=%Length% 无法按预期工作,因为 Batch 无法动态计算 FOR /F 循环。

@echo off

SETLOCAL ENABLEDELAYEDEXPANSION

SET String=Ab,cd,Efgh

REM Loop through each part of the string separated by commas
FOR %%A IN (%String%) DO (
    echo %%A
)

该解决方案根据逗号分割字符串并输出每个部分。

© www.soinside.com 2019 - 2024. All rights reserved.