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
Batch file 如何使用批处理文件仅复制文件(而不是目录)?_Batch File_Cmd_Robocopy - Fatal编程技术网

Batch file 如何使用批处理文件仅复制文件(而不是目录)?

Batch file 如何使用批处理文件仅复制文件(而不是目录)?,batch-file,cmd,robocopy,Batch File,Cmd,Robocopy,目录结构为: Images -Folder1 -image1.jpg -image2.jpg -Folder2 -image3.jpg -image4.png -Folder3 -image6.png -image7.jpg -Folder4 我只想将所有imagesi.e*.jpg、*.png文件复制到父目录Images中,而不想将文件夹复制到父目录Images中 我已尝试使用ro

目录结构为:

  Images
    -Folder1
      -image1.jpg
      -image2.jpg
    -Folder2
      -image3.jpg
      -image4.png 
    -Folder3
      -image6.png
      -image7.jpg 
    -Folder4
我只想将所有imagesi.e*.jpg、*.png文件复制到父目录Images中,而不想将文件夹复制到父目录Images中

我已尝试使用robocopy,如下所示:

robocopy /np ..\..\Exam\Images ..\..\Exam\Images *.jpg *.png /S
此处复制了所有文件和文件夹:。但我只需要复制文件。如何做到这一点


非常感谢

Robocopy只有/XD开关来排除目录,但它排除了整个目录。我会使用批处理文件来代替它

试试这个:

@echo off
setlocal

for /f %%a in ('dir *.jpg *.png /b /s /a-d') do (
   copy %%a PathToImagesFolder
)

Robocopy只有/XD开关来排除目录,但它排除了整个目录。我会使用批处理文件来代替它

试试这个:

@echo off
setlocal

for /f %%a in ('dir *.jpg *.png /b /s /a-d') do (
   copy %%a PathToImagesFolder
)

一个更简单的方法可能是


对于*.png,*.jpg中的/r%%p,请复制%%p destinationFolder。

一种更简单的方法可能是


对于*.png,*.jpg中的/r%%p,请复制%%p destinationFolder。

在命令行中尝试以下操作:

for /r "Images" %i in (*.jpg *.png) do copy "%~fi" "my\target folder"

对于巴赫脚本,%必须加倍%。

在命令行中尝试以下操作:

for /r "Images" %i in (*.jpg *.png) do copy "%~fi" "my\target folder"

对于巴赫脚本,%必须加倍%。

有一个名为Drop It的易于使用的程序。如果这是一项重复性任务,那么您可以使用该程序对文件进行排序|移动|复制到单个目录。希望这对您有所帮助

有一个名为Drop It的易于使用的程序如果这是一项重复性任务,那么您可以使用该程序对文件进行排序|移动|复制到单个目录。希望这有帮助

我认为拷贝或XCOPY最适合用于文件,而我更喜欢在处理文件夹时使用robocy

使用发布的示例尝试:调整路径以满足您的需要

    @Echo off
    For /f %%b In ('Dir C:\Exam\Images /b /s /a:d') Do (
       Robocopy %%b C:\Exam\Images *.jpg *.png /xx /np
    )

我认为COPY或XCOPY最适合用于文件,而在处理文件夹时我更喜欢robocy

使用发布的示例尝试:调整路径以满足您的需要

    @Echo off
    For /f %%b In ('Dir C:\Exam\Images /b /s /a:d') Do (
       Robocopy %%b C:\Exam\Images *.jpg *.png /xx /np
    )

非常感谢。成功了。我只是将其更改为我的特定要求,如下所示:对于/r..\Exam\Images%%f in.jpg,.png复制%%f..\Exam\Images您使用此选项时不使用通配符*?Opps!。不,我在本例中使用了通配符*I.e*.jpg,*.png。谢谢你指出这一点。非常感谢:。成功了。我只是将其更改为我的特定要求,如下所示:对于/r..\Exam\Images%%f in.jpg,.png复制%%f..\Exam\Images您使用此选项时不使用通配符*?Opps!。不,我在本例中使用了通配符*I.e*.jpg,*.png。谢谢你指出这一点。