Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 将具有特定文件扩展名的文件从多个文件夹移动到一个特定文件夹中_Windows_Batch File - Fatal编程技术网

Windows 将具有特定文件扩展名的文件从多个文件夹移动到一个特定文件夹中

Windows 将具有特定文件扩展名的文件从多个文件夹移动到一个特定文件夹中,windows,batch-file,Windows,Batch File,我几周前才开始编写脚本,一直在测试一些脚本,这些脚本是我在本网站上发布的一些人的帮助下编写的 目前我正在挣扎,需要一些帮助或帮助 我希望能够从任何目录及其任何子目录(如果存在)中移动具有任何特定/给定文件扩展名的所有文件。我只想复制文件,而不是文件夹 我希望剧本能起作用,不管怎样: 输入要从中移动文件的目录,例如D:\TestMove 输入要将文件移动到的目录,例如D:\Test 输入要从给定目录移动的所有文件的文件扩展名,然后输入子目录,例如.txt 如果要将它们移动到的目录不存在,则应创建该

我几周前才开始编写脚本,一直在测试一些脚本,这些脚本是我在本网站上发布的一些人的帮助下编写的

目前我正在挣扎,需要一些帮助或帮助

我希望能够从任何目录及其任何子目录(如果存在)中移动具有任何特定/给定文件扩展名的所有文件。我只想复制文件,而不是文件夹

我希望剧本能起作用,不管怎样:

  • 输入要从中移动文件的目录,例如
    D:\TestMove
  • 输入要将文件移动到的目录,例如
    D:\Test
  • 输入要从给定目录移动的所有文件的文件扩展名,然后输入子目录,例如
    .txt
  • 如果要将它们移动到的目录不存在,则应创建该目录

    因此,在我的例子中,我得到了目录
    D:\Test
    ,有多个子目录(
    TestMove\Test2
    ,等等),并且在每个目录中有多个
    .txt
    文件(例如)。我希望能够将所有
    .txt
    文件从
    D:\Test
    目录移动到我想要的任何地方

    目前,它只是从我选择的目录中移动文件,而不是从子目录中移动文件

    我很高兴把这个脚本撕成碎片,这样我就可以知道哪里出了错

    set /P DMF=Please enter Directory moving from: 
    set /P DMT=Please enter Directory moving too: 
    set /P FEX=Please enter File Extension:
    
    if not exist %DMT% mkdir %DMT%
    for %%a in (%FEX%) do (
            echo Moving all %%a files to "%DMT%" ...
            move "%DMF%\*%%a" "%DMT%"
    )
    

    你真的应该修改你的方法。我建议您询问源代码和扩展名,然后检查源代码是否包含该扩展名的文件。只有在这种情况下,您才应该考虑请求并可能创建一个丢失的目的地。要检查目录是否不存在,应使用
    如果不存在D:\directory\
    ,(注意后面的反斜杠)。值得一提的是,您可以省略目录检查和后续创建,是否使用<代码> RoopIs> <代码>命令以及至少其<代码> /MOV < /代码>选项。您可以考虑查看<代码> RoopPox< /代码>,例如“代码> RoopIs/E/MOV“源\文件夹”“Dest\F文件夹”。*ext应该做你想做的事。我想。键入
    for/?
    并读取它的输出-尤其是
    /R
    开关:
    for/R“%DMF%”%%a in(*.%FEX%)do(
    /
    移动“%%~fa”“%DMT\%”
    。注意:您应该准备好重复文件名。