我想要将虚拟文本文件复制到给定目录的每个子目录中在网络驱动器上(Windows)。因为我们要查看数百或数千个子目录,所以我无法手动执行此操作,但我可以创建相关目录的列表。此列表可以传递给批处理文件或类似文件。
我猜批处理文件会有某种FOR 循环它从目录列表中取出一行作为计数器。对于每次迭代,循环只会在计数器指示的目录中创建一个空文件,但我缺乏编写相应批处理文件的编码技能。
我该如何最好地解决这个问题?
更新:
c:\help for
包括一个/R
开关看起来有用:
FOR /R [[drive:]path] %variable IN (设置) DO 命令 [命令参数]
遍历以 [drive:]path 为根的目录树,在树的每个目录中执行 FOR 语句。如果在 /R 之后未指定目录规范,则假定为当前目录。如果设置只是一个句点 (.) 字符,则它将仅枚举目录树。
这看起来很简单,但我需要从目录列表中读取一行:
对于 %? 在 (.) 中执行 echo %? > dumy_file.txt
细节: 我的团队有一个共享网络驱动器,里面有数千个子文件夹,里面塞满了陈旧的文档和旧的工作文件;真是一团糟。计划是在其他地方创建一个反映我们未来文件概念的新树形结构(已完成),然后移动或删除旧树形结构中的文件。为了跟踪哪些子目录已经“迁移”,我们认为以可搜索的虚拟文件的形式设置“待办事项”标记会很方便。
答案1
for /r
这是按照您建议的方式执行您需要的操作的一行程序。
如果将其放在批处理文件中,则必须在两个地方都更改%d
为。%%d
for /r %d in (dummyfilename.txt) do echo dummy content > "%d"