用bat怎样批量提取文件夹及子文件夹下面图片?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用bat怎样批量提取文件夹及子文件夹下面图片?相关的知识,希望对你有一定的参考价值。

1.复制所在父级+子级的文件夹结构(子级下的文件夹不需要),并且把复制的父级名字后加“_A+”,子级文件夹名字和复制的一样;2.把子级下名字为“A+”文件夹里的JPG图片复制到新建的对应子级的文件夹里;

批量导入图片已经是非常普遍的功能了。不论图片名称是否有规律或者是否有在数据库中保存,经过一些专业的设置都可以实现批量导入纸张及布局设置暂且默认A4以及5行2列。然后点击左侧工具栏中“插入位图图片”的图标,先绘制图片样式:

二、添加可变图片 添加不同文件夹中的图片分为两个部分,第一个是先添加文件夹路径及名称,第二部分为添加图片的路径、名称及后缀名:

1、双击图片,打开其数据源窗口,点击左侧“+”,在手动输入窗口下方点击坐下浏览,根据路径选择对应的图片添加,保留图片路径的文件夹名称的固定部分,将后续可变内容及图片名称删除:

再次点击左侧“+”使用“序列生成+补齐”的方法添加文件夹名称中的序列号:

2、添加图片路径、名称及后缀名  点击左侧“+”,使用“手动输入”的方法,添加图片路径及图片名称的固定部分并点击添加;

下面可使用“序列生成+补齐”添加图片名称中的可变部分“001、002、003......”,可变内容添加后,可再次点击左侧“+”,使用手动输入添加图片后缀名,然后点击“确定”即可:

数据源内容添加完毕并确定后,就可以在画布上看到导入的图片样式了。然后点击上方工具栏中的打印预览就可以看到批量导入的不同文件夹中的图片效果了。文中开始位置有三个文件夹,每个文件夹中有一个图片,从下图可以看到已经全部自动导入了:

参考技术A 不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行
<# :
cls&echo off&mode con lines=5000
rem 从当前目录下的多个文件夹里的子文件夹下查找并提取出一个指定名称文件夹里的图片文件
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$folders1=@(dir -liter $path|?(-not $_.Name.EndsWith("_A+")) -and ($_ -is [System.IO.DirectoryInfo]));
for($i=0;$i -lt $folders1.length;$i++)
$folders2=@(dir -liter $folders1[$i].FullName|?$_ -is [System.IO.DirectoryInfo]);
for($j=0;$j -lt $folders2.length;$j++)
$folders3=@(dir -liter $folders2[$j].FullName -recurse|?($_.Name -eq 'A+') -and ($_ -is [System.IO.DirectoryInfo]));
if($folders3.length -ge 1)
$files=@(dir -liter $folders3[0].FullName|?(@('.jpg','.jpeg','.bmp','.png') -contains $_.Extension) -and ($_ -is [System.IO.FileInfo]));
for($k=0;$k -lt $files.length;$k++)
$newfolder=$folders1[$i].FullName+'_A+\'+$folders2[$j].Name+$files[$k].Directory.FullName.substring($folders3[0].FullName.length);
if(-not (test-path -liter $newfolder))[void][IO.Directory]::CreateDirectory($newfolder);
write-host ($files[$k].FullName.substring($path.length)+' --> '+$newfolder.substring($path.length));

以上是关于用bat怎样批量提取文件夹及子文件夹下面图片?的主要内容,如果未能解决你的问题,请参考以下文章

怎样批量提取视频的文件名?

PHP如何获取文件夹下所以子文件夹的名称及子夹所以图片

请问大佬怎么用bat提取指定内容?

怎样用bat 文件 批量删除指定文件名的文件夹

删除某个文件夹里面的所有文件的bat命令

bat 拷贝同一名称文件夹下所有文件?