如何批量循环数组并移动文件

Posted

技术标签:

【中文标题】如何批量循环数组并移动文件【英文标题】:How to loop an array in batch and move files 【发布时间】:2021-01-14 06:18:15 【问题描述】:

我有以下几点:

@echo off
set Arr[0]=1234
set Arr[1]=2351
set Arr[2]=4321
set Arr[3]=6106

如何在数组中循环?同样在每个循环中,我想查看是否存在包含通配符之类的数组编号的文件。例如,对于 Arr[0],如果有一个包含 1234 的文件,例如 ABC_1234.txt 或 1234_ABC.txt 或 1234.txt,则返回 true,否则返回 false。

我是一个完整的批处理初学者,所以任何帮助表示赞赏。

【问题讨论】:

示例:for /F "tokens=1* delims==" do %%I in ('set Arr[ 2^>nul') do if exist "*%%J*" dir "*%%J*" /B 打开一个command prompt,运行for /?set /?if /?dir /?,并从顶部到底部仔细完整地阅读每个输出帮助最后一页。 Stack Overflow 上使用该 FOR 循环发布了数百个批处理文件。 【参考方案1】:

鉴于您提供的示例变量值字符串,我建议采用这种简单的方法。它通过Set 命令解析环境中定义的变量名。

@Echo Off
SetLocal EnableExtensions

Rem Ensure that there are no existing Arr[n] variables.
For /F "Delims==" %%G In ('2^> NUL Set Arr[') Do Set "%%G="

Rem Define new Arr[n] variables.
Set "Arr[0]=1234"
Set "Arr[1]=2351"
Set "Arr[2]=4321"
Set "Arr[3]=6106"

Rem Loop through the Arr[n] variables.
For /F "Tokens=1,* Delims==" %%G In ('2^> NUL Set Arr[') Do Echo "%%H"

Pause

我刚刚在循环中使用了Echo "%%H",您显然会用您的If ExistDir 等命令替换它来搜索与这些变量值字符串相关的文件。

【讨论】:

以上是关于如何批量循环数组并移动文件的主要内容,如果未能解决你的问题,请参考以下文章

循环一个 json 文件并填充一个数组 Swift

将带有列表文件的数组传递给 curl 循环

批量删除数组中的多个元素

我的 for 循环没有根据条件删除数组中的项目? Python [重复]

以数组编号为变量返回循环内数组的内容

如何使用 for 循环为二维数组中的元素设置数据值?