作者ec75413 (无亏/明月几时有?)
看板Programming
标题[问题] 批次改档名
时间Wed Sep 3 03:03:27 2008
有使用数位相机的人大概可以理解我的用途吧!
相片的档名太怪, 很想自订如 2008_summer_000.jpg
或是
删掉了照片後, 档名有跳过, 如删掉DC01.jpg, 那麽DC00.jpg的下一张就是DC02.jpg
想把这种gap弄掉
我目前想到几种解决方案:
1. Batch
使用.bat档大量处理相似的工作, 就像shell或bash
但是我查了很久, 都很难找到完整的语法,
目前试不出来, 而且batch能力似乎还很弱
SET /a counter = 0
FOR %%i IN (*.jpg) DO call :renamer
goto :eof
:renamer
IF %counter% LSS 10(
rename %%i 00%counter%.jpg
)
ELSE IF %counter% LSS 100(
rename %%i 0%counter%.jpg
)
ELSE(
rename %%i %counter%.jpg
)
SET /a counter = %counter% + 1
::end
我也只是写个概念而已... 当中的语法我所知真的有限
2. 自己写一只小程式, 但是这样的话读取"档名"和改档名该怎麽做呢?
int i = 0;
while(1)
{
if( all the file scanned ) break;
else if( (a = GetFile()) > 0)
{
if(i<10)
....
else
Syetem("rename " + a + " " + i + ".jpg");
}
}
这当中很多地方都只能写psuedo code
因为我不知道该怎麽读档名和判断档案读完与否
3. 丢Linux改 但我还不会Bash
4. 使用bash for win 但这个说不定比直接丢Linux还要花更多时间研究
因为费了不少时间都还没得到解决方法,
只好来这里徵求高手帮忙...
我实在觉得这种小工作没必要去网路找程式才能动作。
所以希望能有人指点一条明灯
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.120.208.30
1F:推 sunneo:读取档名可以用opendir -> readdir 59.127.209.65 09/03 10:53
2F:→ sunneo:然後还可以用fstat看档案属性 跳过SUBDIR 59.127.209.65 09/03 10:54
3F:推 jaw109:我只会C++,这种事情我都用C++做的 XD 60.250.140.195 09/03 12:09
4F:→ tkyifang:AcdSee有这功能,我常用 211.23.44.109 09/03 17:10