将批处理文件复制到新创建的同名文件夹

时间:2016-06-11 17:09:34

标签: windows batch-file

我想创建一个批处理文件,它将在我的文件夹中搜索.docx文件,然后为每个文件创建一个单独的目录,然后复制该目录中的每个.docx文件。我的文件夹包含数百个文件,名字很长,家务管理是一场噩梦!

我搜索过并发现了一些代码,可以帮助我为每个.docx文件创建一个新目录。这是链接.." Win 7: CMD batch file for creating directories based on filenames"

仅为文件

创建新目录的代码
for %%I in (*.docx) do mkdir "%%~pnI" 

但是,如何将文件复制到新创建的目录中?

E.g文件名是20160611150424.docx(其中数字是YYYY MM DD HH MM SS)并使用上面的代码创建一个名为20160611150424的文件。

如何使用批处理文件将此文件复制到此文件夹中?哪个是适当的代码?

非常感谢,

NewLearner

1 个答案:

答案 0 :(得分:0)

阅读copy /?:您可以将文件复制到新创建的目录,将目标指定为文件夹,不带文件名和扩展名,copy命令将保留它们:< / p>

for %%I in (*.docx) do (
    mkdir "%%~pnI" 2>NUL
    copy /B "%%~fI" "%%~pnI\"
)

明确指定具有文件名和扩展名的目标,如下所示:

for %%I in (*.docx) do (
    mkdir "%%~pnI" 2>NUL
    copy /B "%%~fI" "%%~pnI\%%~nxI"
)

请注意,如果是这种情况,2>NUL将禁止A subdirectory or file a already exists命令可能生成的错误消息mkdir

资源(必读):