由于本人经常整理照片,需要自动按拍摄日期放照片,求段代码,一
bat吧
全部回复
仅看楼主
level 3
由于本人经常整理照片,需要自动按拍摄日期放照片,求段代码,一键整理,谢谢各位大神了[太开心]
想要的效果是:按照拍摄日期自动创建带时间的文件夹,并把照片放进对应文件夹内,附图一张。
顺便附上网上找的一段代码,只能识别照片时间,也可以自动按时间创建文件夹,但照片不会自动放进去,报错图片也放上了,还请各位大神帮忙。
@璐村惂鐢ㄦ埛_000076K馃惥 off&cd/d "%~dp0"
set x=*.jpg
for /f "tokens=1,3*" %%i in ('dir/a-d %x%^|findstr/b [12]')do (
set "da=%%i"&set "fn=%%k"
setlocal enabledelayedexpansion
set "da=!da:/=-!"
if not exist !da!\ md !da!
move "!fn!" !da!\
echo !fn! ===^> !da!
endlocal)
pause
2020年09月01日 16点09分 1
level 3
@璐村惂鐢ㄦ埛_000076K馃惥 off&cd/d "%~dp0"
set x=*.jpg
for /f "tokens=1,3*" %%i in ('dir/a-d %x%^|findstr/b [12]')do (
set "da=%%i"&set "fn=%%k"
setlocal enabledelayedexpansion
set "da=!da:/=-!"
if not exist !da!\ md !da!
move "!fn!" !da!\
echo !fn! ===^> !da!
endlocal)
pause
2020年09月01日 16点09分 2
level 3
@ echo off&cd/d "%~dp0"
set x=*.jpg
for /f "tokens=1,3*" %%i in ('dir/a-d %x%^|findstr/b [12]')do (
set "da=%%i"&set "fn=%%k"
setlocal enabledelayedexpansion
set "da=!da:/=-!"
if not exist !da!\ md !da!
move "!fn!" !da!\
echo !fn! ===^> !da!
endlocal)
pause
2020年09月01日 16点09分 3
代码是这个,@多空了一格,不然会@别人
2020年09月01日 16点09分
level 3
最好还能自动创建到一个文件夹,并把1.1-1.31的所有文件夹,分类到1月份这个文件夹
2020年09月02日 00点09分 4
level 9
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
<# :
echo off&cls
rem 将多张照片分别剪切/移动到以其拍摄日期命名的文件夹里
mode con lines=3000
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]::Default))) -Args '%~f0'"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
Add-Type -AssemblyName 'System.drawing';
function getdate($v){
$wt=$v.LastWriteTime.toString('yyyy-MM-dd').split('-');
$s=$wt[1]+'\'+($wt -join '');
$img=[System.Drawing.Image]::FromFile($v.FullName);
foreach($it in $img.PropertyItems){
if($it.Id -eq 0x9003){
$dt=[System.Text.Encoding]::ASCII.GetString($it.Value).split(' ');
$d=$dt[0].split(':');
$s=$d[1]+'\'+($d -join '');
};
};
return $s;
};
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$files=@(dir -liter $path|?{('.jpg' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
$newpath=getdate $files[$i];
$newfolder=$path+'\'+$newpath;
if(-not (test-path -liter $newfolder)){[void](md $newfolder);};
write-host ($files[$i].Name+' --> '+$newpath);
}
2020年09月02日 07点09分 5
由于个人使用习惯不同,所以需要有几种格式来供不同的领导来选择
2020年09月02日 11点09分
level 3
@qop_dob 先谢谢大哥,麻烦再帮我看看,代码可以识别照片的日期,但无法把照片放进对应文件夹内,还有几个小要求,希望你有时间帮我重写一下,谢谢。
2020年09月02日 11点09分 6
按运行代码后窗口标题栏中的提示联系我
2020年09月02日 12点09分
@qop_dob 加你了还没回
2020年09月02日 13点09分
@迷途中感受 我在q上
2020年09月02日 15点09分
level 1
你好。自动按拍摄日期放照片的bat,有没有?能否分享下呢[开心]
2024年04月04日 04点04分 7
wx
2024年04月04日 04点04分
1