【问题标题】:Copy batch file into newly created folder of same name将批处理文件复制到新创建的同名文件夹中
【发布时间】:2016-06-11 17:09:34
【问题描述】:

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

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

只为文件创建新目录的代码

for %%I in (*.docx) do mkdir "%%~pnI" 

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

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

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

非常感谢,

新手

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

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

    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 命令生成的错误消息,如果是这种情况。

    资源(必读):

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 2021-10-10
      • 2015-07-31
      • 1970-01-01
      相关资源
      最近更新 更多