批处理嵌套循环,拆分字符串然后拆分每个标记
问题描述:
我的最终目标是采用类似“ab; cd; efg”的字符串,并对由';'分隔的每个标记执行操作,其中包含for循环分别处理由'。'分隔的每个子词。批处理嵌套循环,拆分字符串然后拆分每个标记
我有分裂原点输入像这样:
FOR %%i IN (%input%) DO (
ECHO %%i
)
这似乎是工作,但现在我不能使用:.=;
语法来获得%%我准备再次分裂。我试过SET iVar=%%i
然后能够使用此语法但SET不起作用,iVar
保持空。我确实有EnableDelayedExpansion集。
为了澄清,如果循环变量是在批处理只是正常的变量我最后的脚本将是这样的:
FOR %i% IN (%input%) DO (
ECHO %i%
FOR %j% in (!i:.=;!) DO (
ECHO %j%
)
)
和输出将
a.b
a
b
c.d
c
d
e.f.g
e
f
g
答
尝试这样的:
@echo off
setlocal enabledelayedexpansion
set "$input=a.b;c.d;e.f.g"
for %%a in (%$input%) do (
echo %%a
set "$int=%%a"
set "$int=!$int:.= !"
for %%b in (!$int!) do echo %%b)
谢谢!我想我实际上是在早些时候尝试这个解决方案,但认为'set $ int = %% a'因为我以后使用'%'而不是'''而不工作。 – joejohn 2014-11-05 01:07:58