批量递归文件夹并填充数组

2023-12-01

我希望通过文件夹/子文件夹/等进行递归。 & 使用文件夹路径动态填充数组。

示例:我有一个名为“A”的文件夹,其中有 2 个子文件夹“B”和“C”。 “C”有一个子文件夹“D”。所以数组将是:

Folder[01]=A
Folder[02]=A/B
Folder[03]=A/C
Folder[04]=A/C/D

FOR/ D 命令可以满足我的需要吗?如果是这样,我如何获取循环获取的内容并将其添加到数组中?不幸的是必须批量。谢谢你!


如何动态地使用文件夹路径填充数组。

使用以下批处理文件 (MakeFolderArray.cmd):

@echo off
setlocal enabledelayedexpansion
rem get length of %cd% (the current directory)
call :strlen cd _length
set /a _index=1
for /d /r %%a in (*) do (
  set _name=%%a
  rem remove everything from the drive root up to the current directory, 
  rem which is _length chars
  call set _name=!!_name:~%_length%!!
  rem replace \ with /
  set _name=!_name:\=/!
  set Folder[0!_index!]=!_name!
  set /a _index+=1
  )
set /a _index-=1
for /l %%i in (1,1,%_index%) do (
  echo Folder[0%%i]=!Folder[0%%i]!
  )
endlocal
goto :eof

:strLen  strVar  [rtnVar]
setlocal disableDelayedExpansion
set len=0
if defined %~1 for /f "delims=:" %%N in (
  '"(cmd /v:on /c echo(!%~1!&echo()|findstr /o ^^"'
) do set /a "len=%%N-3"
endlocal & if "%~2" neq "" (set %~2=%len%) else echo %len%
exit /b

Example:

F:\test>MakeFolderArray
Folder[01]=/A
Folder[02]=/A/B
Folder[03]=/A/C
Folder[04]=/A/C/D

Credits:

谢谢dbenham为了strlen代码来自这个答案(如果字符串包含,则有效\人物)。


进一步阅读

  • Windows CMD 命令行的 A-Z 索引- 与 Windows cmd 行相关的所有内容的绝佳参考。
  • dir- 显示文件和子文件夹的列表。
  • for /l- 有条件地对一系列数字执行命令。
  • for /d- 有条件地对多个目录/文件夹执行命令。
  • set- 显示、设置或删除 CMD 环境变量。使用 SET 所做的更改将仅在当前 CMD 会话期间保留。
  • 变量编辑/替换- 编辑并替换分配给字符串变量的字符。
  • 变量- 提取变量的一部分(子字符串)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批量递归文件夹并填充数组 的相关文章

随机推荐

  • FireStore fromSnapshot 与 fromMap 读取 DocumentSnapshot 的区别?

    我一直想知道使用哪个来读取 FireStore 快照 因为我可以使用 fromSnapshot 作为snapshot fieldName 工作得很好 现在 我在 Google Codelabs 中找到了一个示例https codelabs
  • y_test、sklearn 多标签分类上的 MultiLabelBinarizer 形状不一致错误

    import numpy as np import pandas as pd from sklearn pipeline import Pipeline from sklearn feature extraction text import
  • null == foo 与 foo == null [重复]

    这个问题在这里已经有答案了 这可能只是一个风格问题 但我正在读一本 Java 编码书 Android 编程 作者都在变量方法之前先声明 null 这是我不熟悉的做法 例如 if null foo code here or if null f
  • 改革语法以删除移位,减少 if-then-else 中的冲突

    如何消除给定语法的 bison 的移位归约冲突 selection stmt gt if expression statement if expression statement else statement 提供修改后的语法的解决方案将受
  • 使用SetTimer API时出现“运行时错误50290”如何处理?

    我在尝试在 Excel 中制作秒表计时器时遇到了此错误 这是一个简单的测试代码 使用按钮创建一个空的 Excel 工作簿 并为其分配一个宏 Sub Button1 Click TimerID SetTimer 0 0 0 5 1000 Ad
  • onHover 事件未在 Chart.js 中触发

    我想当鼠标在图表上移动时更改光标 例如这把小提琴 这适用于 Chart jsv2 4但不适用于v2 6 v2 7任何想法 var ctx document getElementById canvas1 getContext 2d var m
  • 脚本可以在本地主机上运行,​​但不能在服务器上运行

    我遇到这个问题 代码在本地主机上运行 但当我将其上传到服务器时却不起作用 我想实现这个 宝丽莱照片吧画廊 这是我的网站的链接 十二生肖 2013 Note 您需要进入图库选项卡才能查看它 EDIT 请使用 Google Chrome 浏览器
  • 寻找正则表达式来匹配 gmail plus 地址

    我目前使用这个 gmail com 我正在捕获一组加号之前和之后的文本 它适用于大多数情况 例如 email protected 但如果我尝试匹配说就会跌倒 email protected 重复的 号似乎把它搞砸了 任何帮助将非常感激 Th
  • 将 R Parallel 与其他 R 包一起使用

    我正在使用 R 中的 LQMM 包进行非常耗时的分析 我将模型设置为从星期四开始运行 现在是星期一 并且仍在运行 我对模型本身充满信心 作为标准 MLM 进行测试 并且对我的 LQMM 代码充满信心 已经使用相同的数据集运行了其他几个非常相
  • 检测用户存在

    我想做的是检测用户是否正在积极使用运行 Windows 2000 或更高版本 的计算机 最好 我想在不使用屏幕保护程序的情况下执行此操作 背景 我们有一个客户服务部门 位于寻线组中 可以 可用 或 不可用 如果他们 有空 呼叫将被路由到他们
  • 多个命令在 xcode 11.4 反应本机中产生错误我的副本包资源为空

    以下是xcode中的错误 我还尝试过从工作区设置构建旧版本 但未能成功 多个命令生成 Users saifubaid Library Developer Xcode DerivedData antispam bjwrxskogxnnophf
  • 如何在Linux内核中递归读取目录内容?

    我想实现一个树遍历函数 打印给定目录的所有内容 在内核中 我知道如何在用户空间中执行此操作 但我的要求是在内核空间中执行此操作 为此 我正在研究 vfs readdir 函数 并且对其用法有点困惑 假设我将从其他内核模块调用我的遍历函数 这
  • 如何设置 AlertDialog 的主题

    如何将警报主题设置为标准 Android 主题之一 我想使用 Holo Dark 因为弹出窗口默认为 Holo Light 我的代码 AlertDialog Builder confirm new AlertDialog Builder t
  • 如何使用 NSCache

    有人可以举例说明如何使用NSCache缓存字符串 或者有人有一个很好的解释的链接吗 我好像找不到啊 您使用它的方式与使用它的方式相同NSMutableDictionary 不同的是 当NSCache检测到内存压力过大 即缓存了太多值 它将释
  • PyCharm 中注释的折叠

    很长一段时间我一直在寻找一种在 PyCharm 中折叠注释的方法 基本上我一直在寻找一种方法来实现相同的目标 对于代码块的注释 很容易实现这一点 region Description all your comments go here en
  • 如何使用 javascript 更改 @keyframes 值?

    我想要做的是改变 0 和 100 的最高值 keyframes取决于 javascript 中的 x 等于什么 我之前已经使用 javascript 更改了 css 但我被困在这个上了 Code var x Math floor Math
  • 如何使用 Amazon Cognito 进行未经身份验证的访问?

    我创建了联合身份 Enabled 未经身份验证的访问与复选框 创建了与此身份关联的角色并赋予它管理员访问权限 所以它应该拥有所有权限 然后我添加此代码以将文件上传到 AWS S3 它与访问 密钥一起使用 我不想公开给 UI 但它不适用于 C
  • JHipster 应用程序中延迟加载组件的 i18n

    My App是基于JHipster因此语言服务是通过以下方式提供的智语言服务 in the ng jhipster库使用了一个Jhi配置服务配置ngx translate无需我在我的中导入和配置 TranslateModuleapp mod
  • MSI 卸载期间文件到底是如何删除的?

    我想知道在卸载过程中已安装的文件 组件到底发生了什么 对于安装和升级过程 MSDN 上有可靠的文档 请参阅文件版本控制规则 and 默认文件版本控制 例如 无论如何 我在 MSDN 或 WiX 的文档中找不到卸载删除逻辑的文档 所以 我的问
  • 批量递归文件夹并填充数组

    我希望通过文件夹 子文件夹 等进行递归 使用文件夹路径动态填充数组 示例 我有一个名为 A 的文件夹 其中有 2 个子文件夹 B 和 C C 有一个子文件夹 D 所以数组将是 Folder 01 A Folder 02 A B Folder