Powershell批量处理各个格式的图片大小
公司备案,照出的图片大小各式各样,而要求是使用统一小于95kb大小的图片才能处理,PS操作一两张图片还可以可是当有上千个各种图片需要处理那就太浪费时间
而且工作效率大大的降低,为了降低同事的劳动时间就利用业余时间写了个脚本方便操作。此处采用Poweshell处理,本来想用linux下处理的但是对中文支持不好,就果断采用Powershell,这在Windows下是个很生强大的工具。特此留备。
-
#定义要处理文件目录
-
$pwd='D:\azure\图片\郑州'
-
#显示当前的目录如果把true改成fasle是显示当前文件
-
$filelist=Get-ChildItem $pwd | ?{$_.PsIsContainer -eq $true}|%{$_.Name}
-
foreach ($file in $filelist) {
-
cd D:\azure\图片\郑州\$file
-
#定义输出目录文件的路径
-
mkdir E:\test\$file
-
#$tmpname=Get-ChildItem .| ?{$_.PsIsContainer -eq $false}|%{$_.Name}
-
#$tmpsize=Get-ChildItem .|%{$_.Length}
-
$tmpname=Get-ChildItem .| ?{$_.PsIsContainer -eq $false}
-
#$tmpsize.name
-
#$tmpname
-
#$tmpsize
-
foreach ( $n in $tmpname) {
-
#处理文件大于2M的文件并约束调整到小于95kb的图片
-
if ( $n.Length -gt 2097152 ) {
-
& 'C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe' $n.Name -resize 300 E:\test\$file\$n
-
}
-
elseif ( $n.Length -gt 838860 ) {
-
& 'C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe' $n.Name -resize 600 E:\test\$file\$n
-
}
-
elseif ( $size -gt 204800 ) {
-
& 'C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe' $n.Name -resize 1600 E:\test\$file\$n
-
}
-
elseif ( $size -gt 102400 ) {
-
& 'C:\Program Files\ImageMagick-6.9.0-Q16\convert.exe' $n.Name -resize 1800 E:\test\$file\$n
-
}
-
}
-
}
阅读(2744) | 评论(0) | 转发(0) |