将字符串拆分为单独的子字符串时出现问题

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

我有这个批处理文件。

@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 for-loop batch-file split cmd
1个回答
1
投票

主要问题在于逻辑不必要的复杂性。例如,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.