Wildcards

Cygwin 使用萬用字元修剪所有圖像

  • August 19, 2015

不幸的是,我被迫使用窗戶。所以,我安裝Cygwin了一些Linux命令。

以下命令工作正常。它用修剪後的版本替換圖像。

"C:\Program Files\Cygwin\bin\convert" image1.png -trim image1.png 

但是,如何在所有圖像文件上執行此命令?

"C:\Program Files\Cygwin\bin\convert" * -trim ????

您安裝了 cygwin,因此您可以使用它的 shell 來獲得最大的命令支持: "C:\Program Files\Cygwin\cygwin.bat

這將為您提供一個 bash shell 然後您可以更改directoty 以轉到圖像位置。假設您的圖像位置是"D:\Your Name\Images",去那裡輸入cd "/cygdrive/d/Your Name/Images" 然後使用 bash for 循環呼叫您的命令:

for file in *
do
convert "$file" -trim "$file"
done

考慮這更像是對@Slyx答案的擴展/增強。

Cygwin 有一個有用的實用程序cygpath可以將 Windows 路徑轉換為 Cygwinbash外殼中理解的 *nix 樣式:

$ cygpath "D:\Path\To\Images"
/cygdrive/d/Path/To/Images

除了for建議的顯式 -loop 之外,您還可以考慮使用它對find過濾文件名有更好的支持,並且可以說更安全地支持帶空格的名稱(正如您在 Windows 中可能遇到的那樣):

find "$(cygpath "D:\Path\To\Images")"/ -type f -name '*.png' -exec convert '{}' -trim '{}' \;
  1. 在目錄裡面D:\Path\To\Images
  2. 查找以 ( -type f) 結尾的文件png( -name '*.png'),
  3. 對於它們中的每一個,每個結果文件都帶有as(引用)佔位符exec的命令。convert``'{}'

引用自:https://unix.stackexchange.com/questions/223588