首先说明一点,是复制子文件夹的图片出来。
如果子文件夹里还有文件夹,这种子子文件夹的图片,那就不行了。
——————————————————————————
批处理在根文件夹有多个子文件夹,在根文件夹新建BAT运行,将所有子文件夹里面的图片都复制到根文件夹下。
【解决代码】
for /f "delims=" %%i in ('dir /b /ad') do copy "%%i\*.jpg"
引申:还可以提取txt文档,word文档,mp4视频等等,一样的方式修改代码。
命令解析
for /f "delims=" %%i in ('dir /b /ad') do copy "%%i\*.jpg"
for /f "delims=" %%i in ('dir /b /ad') do
:for /f
:这是一个循环语句,用于处理命令输出的每一行。"delims="
:指定没有分隔符,这样%%i
会接收整行输出。%%i
:这是循环变量,每次循环都会被赋予一个新的值。'dir /b /ad'
:这是一个内部命令,用于列出当前目录下的所有子目录(/ad
表示仅目录,/b
表示简洁模式,即仅文件名)。
copy "%%i\*.jpg"
:copy
:这是复制文件的命令。"%%i\*.jpg"
:这是源文件路径。%%i
代表子目录的名称,\*.jpg
表示该子目录下的所有.jpg文件。
执行流程
- 列出子目录:
dir /b /ad
命令会列出当前目录下的所有子目录,每个子目录占一行。
- 循环处理每个子目录:
for /f
循环会逐行读取dir
命令的输出。- 对于每一个子目录,
%%i
会被赋予该子目录的名称。
- 复制文件:
- 在循环体内,
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文件。
声明:本站部分文章、信息、图片、软件等来源于互联网,由本网整理发表,希望传递更多信息和学习之目的。如设计、版权等问题,请立即联系管理员,我们会给予更改或删除相关文章,保证您的权利。