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

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

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

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

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

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

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

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-27
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为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));
}}}}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网