将子文件夹中的文件移动或复制到另一个文件夹

时间:2015-01-19 03:16:40

标签: scripting cmd command-line-interface robocopy

我一直在寻找相当长的一段时间,但我找不到任何东西似乎对我有用。

我真的想将文件移动到同一驱动器上的另一个文件夹,如果可能的话,以防驱动器的空间不足。但我找到的移动脚本似乎都不适合我。

我尝试过使用移动,移动项目,复制,xcopy甚至是robocopy。

到目前为止,robocopy是唯一一个为我工作的人,即使创建一个新文件,它也会在新位置创建一个文件所在的子文件夹。

所以我的工作到目前为止看起来如何

D:\DVDBD-Projects\Project1\
                       Movie1\
                       Movie2\
                       Movie3\

每个影片文件夹中都有一个.mkv文件,我想将项目下每个文件夹中的.mkv移动到新位置,而不创建它最初所在的文件夹。

因此.mkv文件将被移动到D:\ DVDBD-Projects \ Complete,而没有任何文件夹只是mkv文件。

这是我的代码

robocopy "D:\DVDBD-Projects\Project1" "D:\DVDBD-Projects\Complete" *.mkv /s

这会将文件复制到新位置,但也会创建movie1文件夹,依此类推。如果我不使用/ s开关,它不会查看子文件夹内部并复制文件。

所以我希望你们可以帮助我,有没有办法可以将.mkv文件复制或移动到整个文件夹。

我计划将此代码添加到编码来自我相机的电影的脚本中,这样可以节省很多点和点击以及剪切和粘贴。

*注意 - 看起来我可以使用此代码

pushd "D:\DVDBD-Projects\Project1"
   for /r %%a in (*.mkv) do (
       MOVE "%%a" "D:\DVDBD-Projects\Complete\%%~nxa"
   )
popd

这将从子文件夹中获取所有文件并将它们移动到目标文件夹

我可能还可以安装扩展xcopy的xxcopy,它允许我从子目录复制文件而不在目标中创建新文件夹

1 个答案:

答案 0 :(得分:0)

for /f "delims=|" %%s in ('dir /ad/b') do robocopy "\\source\%%s\"     "destination\" *.mkv /s