所以场景是这样的......
我有我的文件夹结构
- 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/