我一直试图将位于 的各个子目录中具有JPG
扩展名的所有文件复制到 上C:
的单个目录中D:
。我不想保留目录结构。
这是我目前得到的信息:
for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures
此后,系统会询问我是否要覆盖D:\pictures
。如果我回答yes
,则最终会得到一个文件;如果我回答否,则不会复制任何文件。
我也尝试/y
在命令末尾添加,但它只会覆盖前面的文件,只留下最后一个。
答案1
这应该有效:
for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures\
解释:
该命令copy "%f" D:\pictures
将文件复制%f
到该位置,即目录中的D:\pictures
文件。pictures
D:\
添加尾随\
以确保copy
将其pictures
视为目录。
如果您将多个文件复制到一个位置(例如copy *.* D:\backup
),copy
则会自动将其backup
视为一个目录。但是当您复制单个文件时情况并非如此。
答案2
对于 /R c:\ %%1 在 ("*.txt") 中,执行 @xcopy "%%1" d:\txttemp%%~p1 /e/i/s/q/h
此代码将复制而不覆盖并将创建文件夹和子文件夹