繁体   English   中英

批次:将目录列表保存到列表变量中

[英]Batch: Save directory listing into list-variable

我想从源目录( C:\\Users\\Desktop\\Source\\Test.xlsx )中获取文件,并将其复制到几个具有相同结构的文件夹中。 因此,我只需要更改一个文件夹名称。 所有操作都通过一个批处理文件和一个随后创建的日志文件完成。

有动态扩展我的批处理程序在这里,我想要做的根文件夹的内容进行过滤( C:\\Users\\Desktop\\Replica\\ ),这说明我孩子的( one two three four five ),其中文件需要在内部被复制testfolder 目前,我已经完成了以下操作,这是静态的:

set "list=one two three four five"
(
 for %%i in (%list%) do (
  xcopy "C:\Users\Desktop\Source\Test.xlsx" "C:\Users\Desktop\Replica\%%i\testfolder" /Y  
 echo(%%i
 echo(
)
)>copylog.txt

因此,我的问题基本上是谁只列出“副本”下的文件夹,然后将它们放在一个列表变量中,以便在已编写的代码中使用。 我只找到了将它们保存在单独的.txt文件中的源,但是我只想将其保留在批处理中。

对这个有任何猜测吗?

顺便说一句:我经历过将路径另存为变量,因此无法执行xcopy %source% %target% (即使具有“ %source% ”或source = "Path" )。 这里有什么问题?

您无需搜索目录,将它们放入变量中,然后遍历变量中的值。 只是遍历目录

...
for /d %%i in ("C:\Users\Desktop\Replica\*") do (
    xcopy /y "C:\Users\Desktop\Source\Test.xlsx" "%%~fi\testfolder"
...

for /d将遍历指示的目录集。 xcopy命令中, %%~fi用于检索当前迭代的目录的完整路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM