2015-10-15 104 views
0

我想从源目录中获取文件(C:\Users\Desktop\Source\Test.xlsx),并希望将其复制到多个文件夹,所有文件夹都具有相同的结构。所以我必须更改一个文件夹名称。全部通过一个批处理文件完成,并且只有一个日志文件在之后创建。批处理:将目录列表保存到列表变量

要具有动态扩展我的批处理程序在这里,我想要做的根文件夹(C:\Users\Desktop\Replica\),这说明我在哪里的文件需要孩子的(onetwothreefourfive)的元素的过滤在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")。这里有什么问题?

回答

0

您不需要搜索目录,将它们放入一个变量,然后迭代变量中的值。只需遍历目录

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

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

+0

谢谢,这很好。我只是忘记了/ *想法...批次对我来说是比较新的 - 即使它很旧。 – Kaibear