我有这个批处理文件代码 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
主要问题在于逻辑不必要的复杂性。例如,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
)
该解决方案根据逗号分割字符串并输出每个部分。