Windows 批处理命令将文件复制到多个子目录

Windows 批处理命令将文件复制到多个子目录

我有 2 个文件文件1.txt文件2.txt我想复制到这样的文件夹结构中

parentfolder
    subfolder1
         destinationfolder
    subfolder2
         destinationfolder
    subfolder3
         destinationfolder
    subfolder4
         destinationfolder
    subfolder5
         destinationfolder

其中 file1.txt 和 file2.txt 进入目标文件夹目录。子文件夹(NUM)是唯一的和非连续的。

有没有办法自动完成这个复制和粘贴任务?

答案1

由于这些文件夹是唯一的并且不连续,我假设您事先知道它们是什么。

您可以使用 xcopy 或 robocopy 来实现这一点

这是用 xcopy 做的

xcopy "c:\myfile.txt" "c:\parent\subfolder1\" /z /i
xcopy "c:\myfile.txt" "c:\parent\subfolder2\" /z /i 
xcopy "c:\myfile.txt" "c:\parent\subfolder3\" /z /i
xcopy "c:\myfile.txt" "c:\parent\subfolder4\" /z /i
xcopy "c:\myfile.txt" "c:\parent\subfolder5\" /z /i

xcopy "c:\myfile2.txt" "c:\parent\subfolder1\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder2\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder3\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder4\" /z /i
xcopy "c:\myfile2.txt" "c:\parent\subfolder5\" /z /i

将代码保存到记事本,另存为。将其命名为 Copy.bat(注意 .bat),运行它。全部完成。

答案2

一旦您正确编辑路径和文件夹名称,此批处理文件应该可以满足您的要求:

@echo off
for /r "drive:\path\to\parentfolder" %%d in (.) do (
    if "%%~nd"=="destinationfolder" (
        xcopy "drive:\path\to\file 1.txt" "%%~d"
        xcopy "drive:\path\to\file 2.txt" "%%~d"
    )
)

答案3

我遇到了同样的问题,Karan 给出了很好的答案,谢谢!对我来说,我需要的是删除此部分

if "%%~nd"=="destinationfolder" 

对我来说,它确实有用。上一条回复中所述的 If 语句会在您输入“destinationfolder”时搜索特定文件夹,删除此行将定位父文件夹内的所有文件夹,这正是我想要的。

相关内容