批量嵌套循环,拆分字符串然后拆分每个标记

时间:2014-11-05 00:39:34

标签: batch-file cmd

我的最终目标是采取类似" a.b; c.d; e.f.g"并对由&#39 ;;'分隔的每个标记执行操作,其中包括一个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

1 个答案:

答案 0 :(得分:1)

试试这样:

@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)