【发布时间】:2017-03-20 17:08:19
【问题描述】:
在 Windows CMD 批处理循环中,我想使用动态变量:list1、list2 和 list3,其中数字 1-3 是动态的(即:list&i),但我正在努力:
setlocal enabledelayedexpansion enableextensions
SET threads=3
set i=1
for /R %%x in (*.jpg) do ( call set LISTNAME=LIST!i! & SET LIST!i!=!LISTNAME! "%%x" & set /A i=!i!+1 & if !i! gtr %threads% (set i=1))
echo "first" %LIST1%
echo "second" %LIST2%
echo "third" %LIST3%
我挣扎的确切位置是:
SET LIST!i!=!LISTNAME! "%%x"
例如,我希望它在哪里:
SET LIST1=!LIST1! "%%x"
但是,listname 只是转换为字符串 LIST1,而不是变量 LIST1。 我也试过没有成功:
SET LIST!i!=!LIST!i!! "%%x"
脚本的目的:将 JPG 文件名放在 3 个列表中 编辑以回答第一条评论:文件名以循环方式分布并用空格分隔。
【问题讨论】:
-
您希望如何分配列表中的图片?循环赛?列表中的文件名应该如何分隔,一个空格?如果您已经将命令括在括号中,则无需将它们保留在一行中。with
& -
使用
CALL SET LIST!i!=%%LIST!i!%% "%%x"或FOR /F %%i in ("!i!") DO SET LIST%%i=!LIST%%i! "%%x"。此管理在this answer 进行了解释 -
感谢 Aacini:这非常有用,尤其是 !LIST%%i!我使用它与下面 LotPings 的答案结合使用以递归显示列表。
标签: windows batch-file cmd