windows - 是否可以通过 cmd/batch 文件将文件从目录复制到所有其他目录中的子目录中?

标签 windows batch-file copy cmd

所以场景是这样的......

我有我的文件夹结构

 - C:\
     - DirectoryA 
         - SubdirA
             - File.xml     
     - DirectoryB    
         - SubdirB     
     - DirectoryC
         - SubdirC
     .
     .
     .

我的问题是, 有没有办法在批处理/cmd 文件中将文件从 SubdirA 复制到所有其他目录的所有子目录中,而无需大量复制语句?

最佳答案

抱歉,这个问题有几个不清楚的地方。

起初,我以为你想“将文件从 SubdirA 复制到所有其他目录的所有子目录中”在文件所在的同一级别,也就是说,如果 SubdirB 和/或 SubdirC下面会有子目录,文件不会被复制到其中;只是到 SubdirB 和 SubdirC。如果存在的 DirectoryD 下没有其他子目录,则文件不会复制到其中。下面的批处理文件执行此过程:

@echo off
set "theFile=C:\DirectoryA\SubdirA\File.xml"

for /F "tokens=2 delims=\" %%a in ("%theFile%") do set "originDir=%%a"
cd \
for /d %%a in (*) do (
   if not "%%a" == "%originDir%" (
      pushd %%a
      for /d %%b in (*) do (
         copy "%theFile%" "\%%a\%%b"
      )
      popd
   )
)

但是,您后来说:“目录将全部位于同一级别,即直接位于 C: 之下”,这与您自己的示例相矛盾!示例中的目录向下两级。

请注意,这一点(目标目录的级别)对于正确编写批处理文件至关重要(如果上面的文件不能解决您的问题)。

关于windows - 是否可以通过 cmd/batch 文件将文件从目录复制到所有其他目录中的子目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9362487/

相关文章:

c - 如何在结构中逐个成员复制

linux - 如何在 Linux 终端中复制带空格的文件列表

windows - 通过批处理或 cmd 文件停止和启动服务?

windows - Docker- 为什么 docker 更新主机文件?

windows - 从命令行转到 Atom 编辑器中的行

c++ - 获取 Windows 版本字符串 C++

来自 Google 文档的 wget 上的 SSL 证书错误

batch-file - 批量将变量视为字符串

c++ - C++中默认复制构造函数的奇怪行为

windows - Delphi 主题工具栏是否可以在其工具按钮之间设置分隔线?