Re: [問題] 寫一隻sh轉換圖片

看板Linux作者時間15年前 (2010/09/03 17:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
#!/bin/bash function START() { echo $FromType; for fileName in `ls -F | grep $FromType` #找尋資料夾內所有的PNG圖檔 do echo ' Converting: "'$fileName'"...'; #輸出轉換中訊息 mogrify -resize ">1280X1024" -format $ToType $fileName; #轉換指 令 done; for folderName in `ls -F | grep '/'` #深入子目錄 do folderName=${folderName%/*}; #稍微修正目錄表示方式,顯示比較美觀 echo ' Into: "'$folderName'".'; #輸出訊息 cd "$folderName"; #移動至該目錄 START; #遞迴呼叫 cd ..; #子目錄完畢後回原目錄 done; } read -p 'Please pick a DIR:' dir; #輸入要進行作業的資料夾名稱 cd "$dir"; #切換到下層目錄 read -p '請輸入要轉換的圖片格式:' FromType; read -p '清輸入要轉換為的圖片格式:' ToType; echo 'Here we go!'; #程序開始訊息 START; #執行遞迴函數 echo 'Done!'; #完成訊息 --------------------------- 鄙人做了一些修改,應該可以滿足你的要求。至於你提到的空文件夾的問題,我沒有遇到。 ==> NoCanDo.bbs@ptt.cc (沒法度) 提到: > 因為mogrify好像沒有遞迴子資料夾的功能 > 所以我拿某人寫的sh改寫來用 > 有幾個問題想解決: > 1、遇上檔名有空格的資料夾就會失效。 > 2、要怎寫才能增加轉換的格式? (例如:png、bmp、gif > jpg ) > 3、遇上格式大小寫也會失效? (png?PNG?) > #!/bin/bash > function START() > { > for fileName in `ls -F | grep '.JPG'` #找尋資料夾內所有的PNG圖檔 > do > echo ' Converting: "'$fileName'"...'; #輸出轉換中訊息 > mogrify -resize 1280X1024 "${fileName%.JPG}.jpg"; #轉換指令 > done; > for folderName in `ls -F | grep '/'` #深入子目錄 > do > folderName=${folderName%/*}; #稍微修正目錄表示方式,顯示比較美觀 > echo ' Into: "'$folderName'".'; #輸出訊息 > cd "$folderName"; #移動至該目錄 > START; #遞迴呼叫 > cd ..; #子目錄完畢後回原目錄 > done; > } > read -p 'Please pick a DIR:' dir; #輸入要進行作業的資料夾名稱 > cd "$dir"; #切換到下層目錄 > echo 'Here we go!'; #程序開始訊息 > START; #執行遞迴函數 > echo 'Done!'; #完成訊息 -- ☆ [Origin:椰林風情] [From: 121.22.24.11] [Login: 21] [Post: 4]
文章代碼(AID): #1CWBbEtz (Linux)
文章代碼(AID): #1CWBbEtz (Linux)