批处理脚本:嵌套FOR / R循环定义中的变量

时间:2018-01-09 13:51:48

标签: batch-file cmd

我是批处理脚本的新手,编写嵌套循环和变量扩展的任务让我感到困惑! 我需要在我的脚本中完成一个简单的任务:

DIRECTORIES是在其他地方生成的目录名列表。它看起来像一个字符串:" dir1,dir2,dir3"。

还有LOCATION变量,在之前设置。

我需要遍历目录名称并对它们进行一些处理(这里省略)。

如果要将%LOCATION%\(当前.txt)中的所有文本文件重命名为.bbb(但不要触摸那些名为' dir'或"的一个"

我已创建此脚本。但它并没有像预期的那样发挥作用。它在没有外循环的情况下运行良好,但是当%% a在嵌套循环的定义中遇到%% b时,我想有变量名扩展会出错。

for %%a in (%DIRECTORIES%) do (
    ... [do some work]

    :: Rename all .txt files to .bbb (except one.txt and __two__.txt)
    for /r %LOCATION%\%%a %%b in (*.txt) do (
        (Echo "%%b" | FINDSTR "dir __one__" 1>NUL) || (
            ren "%%b" "%%~nb.bbb"
        )
    )
)

0 个答案:

没有答案