[問題] 批次改檔名

看板Programming作者 (無虧/明月幾時有?)時間17年前 (2008/09/03 03:03), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/4 (看更多)
有使用數位相機的人大概可以理解我的用途吧! 相片的檔名太怪, 很想自訂如 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

09/03 10:53, , 1F
讀取檔名可以用opendir -> readdir
09/03 10:53, 1F

09/03 10:54, , 2F
然後還可以用fstat看檔案屬性 跳過SUBDIR
09/03 10:54, 2F

09/03 12:09, , 3F
我只會C++,這種事情我都用C++做的 XD
09/03 12:09, 3F

09/03 17:10, , 4F
AcdSee有這功能,我常用
09/03 17:10, 4F
文章代碼(AID): #18lOu2Y6 (Programming)
討論串 (同標題文章)
文章代碼(AID): #18lOu2Y6 (Programming)