Windows 批处理:将目录列表保存到列表变量中

Windows 批处理:将目录列表保存到列表变量中,windows,list,batch-file,dir,Windows,List,Batch File,Dir,我想从源目录(C:\Users\Desktop\source\Test.xlsx)中获取一个文件,并将其复制到多个文件夹中,所有文件夹都具有相同的结构。所以我只需要更改一个文件夹名。所有这些都是通过一个批处理文件和一个随后创建的日志文件来完成的 为了在这里动态扩展批处理过程,我想对根文件夹的元素进行筛选(C:\Users\Desktop\Replica\),它向我显示孩子们(12345)需要在testfolder内复制文件的位置。目前,我已经做了以下静态操作: set "list=one two

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

为了在这里动态扩展批处理过程,我想对根文件夹的元素进行筛选(
C:\Users\Desktop\Replica\
),它向我显示孩子们(
1
2
3
4
5
)需要在
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
所以,我的问题基本上是谁在“replica”下列出文件夹,并将它们放在一个列表变量中,我可以在代码中使用,就像已经编写的一样。我只找到了将这些文件保存在单独的.txt文件中的源代码,但我只想将其保存在批处理中

对这个有什么猜测吗


顺便说一句:我经历了将路径作为变量保存的过程,我无法执行
xcopy%source%%target%%
(即使有“
%source%
”或
source=“path”
)。这里有什么问题?

您不需要搜索目录,将它们放入变量,然后迭代变量中的值。只需在目录上迭代即可

。。。
对于“C:\Users\Desktop\Replica\*”中的/d%%i,请执行以下操作(
xcopy/y“C:\Users\Desktop\Source\Test.xlsx”“%%~fi\testfolder”
...

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

谢谢,效果很好。我刚刚忘记了/*的想法……批处理对我来说相对较新,即使它很旧。