【问题标题】:Batch: Save directory listing into list-variable批处理:将目录列表保存到列表变量中
【发布时间】:2015-10-15 11:41:37
【问题描述】:

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

要在这里动态扩展我的批处理过程,我想对根文件夹 (C:\Users\Desktop\Replica\) 的元素进行过滤,这向我显示了子文件夹 (one two three @987654326 @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")。这里有什么问题?

【问题讨论】:

    标签: windows list batch-file dir


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,效果很好。我只是忘记了 /* 的想法...... Batch 对我来说相对较新 - 即使它很旧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多