首先说明一点,是复制子文件夹的图片出来。

如果子文件夹里还有文件夹,这种子子文件夹的图片,那就不行了。

——————————————————————————

批处理在根文件夹有多个子文件夹,在根文件夹新建BAT运行,将所有子文件夹里面的图片都复制到根文件夹下。

 

【解决代码】

for /f "delims=" %%i in ('dir /b /ad') do copy "%%i\*.jpg"      
新建一个记事本文档,把这串代码粘贴进去,后缀修改成bat
如果需要png格式,就把代码中的jpg的改成png
如果不会制作,就直接下载吧,我已经做好上传了。

 

引申:还可以提取txt文档,word文档,mp4视频等等,一样的方式修改代码。

【代码解析】这个批处理命令的功能是将当前目录下所有子目录中的所有.jpg文件复制到当前目录。下面是对该命令的详细解释:

命令解析

for /f "delims=" %%i in ('dir /b /ad') do copy "%%i\*.jpg"
  1. for /f "delims=" %%i in ('dir /b /ad') do
    • for /f:这是一个循环语句,用于处理命令输出的每一行。
    • "delims=":指定没有分隔符,这样%%i会接收整行输出。
    • %%i:这是循环变量,每次循环都会被赋予一个新的值。
    • 'dir /b /ad':这是一个内部命令,用于列出当前目录下的所有子目录(/ad表示仅目录,/b表示简洁模式,即仅文件名)。
  2. copy "%%i\*.jpg"
    • copy:这是复制文件的命令。
    • "%%i\*.jpg":这是源文件路径。%%i代表子目录的名称,\*.jpg表示该子目录下的所有.jpg文件。

执行流程

  1. 列出子目录:
    • dir /b /ad命令会列出当前目录下的所有子目录,每个子目录占一行。
  2. 循环处理每个子目录:
    • for /f循环会逐行读取dir命令的输出。
    • 对于每一个子目录,%%i会被赋予该子目录的名称。
  3. 复制文件:
    • 在循环体内,copy "%%i\*.jpg"命令会执行,将当前子目录下的所有.jpg文件复制到当前目录。

注意事项

  • 如果当前目录下有同名的.jpg文件,它们将被新复制的文件覆盖
  • 如果子目录中没有.jpg文件,对应的copy命令将不会执行任何操作。
  • 确保你有足够的权限来访问和复制目标文件夹中的文件。

示例

假设当前目录结构如下:

 

.
├── subdir1
│   └── image1.jpg
├── subdir2
│   ├── image2.jpg
│   └── image3.png
└── subdir3
    └── image4.jpg

执行上述批处理命令后,当前目录将包含以下文件:

.
├── image1.jpg
├── image2.jpg
└── image4.jpg

image3.png没有被复制,因为它不是.jpg文件。

 

声明:本站部分文章、信息、图片、软件等来源于互联网,由本网整理发表,希望传递更多信息和学习之目的。如设计、版权等问题,请立即联系管理员,我们会给予更改或删除相关文章,保证您的权利。