残念ながら私はやむを得ずWindowsを使用するようになりました。だから私はCygwin
いくつかのLinuxコマンドをインストールしました。
次のコマンドは正常に動作します。画像を切り捨てられたバージョンに置き換えます。
"C:\Program Files\Cygwin\bin\convert" image1.png -trim image1.png
しかし、すべてのイメージファイルに対してこのコマンドをどのように実行しますか?
"C:\Program Files\Cygwin\bin\convert" * -trim ????
答え1
最大コマンドサポートのためにシェルを使用できるようにcygwinをインストールしました。
"C:\Program Files\Cygwin\cygwin.bat
これにより bash シェルが提供され、方向を変更して画像の位置に移動できます。画像の位置がと仮定してその"D:\Your Name\Images"
位置に移動し、cd "/cygdrive/d/Your Name/Images"
bashを使用してコマンドを呼び出そうとします。forループ:
for file in *
do
convert "$file" -trim "$file"
done
答え2
これを拡張/改善と考えてください。@スリックス答え。
cygpath
Cygwinには、Windowsパスをbash
Cygwinシェルで理解できる* nixスタイルに変換するための便利なユーティリティがあります。
$ cygpath "D:\Path\To\Images"
/cygdrive/d/Path/To/Images
提案された明示的な-loopに加えて、ファイル名のフィルタリングをよりよくサポートし、スペースのある名前をより安全にサポートできる(Windowsで発生する可能性のあるものなど)for
使用を検討することもできます。find
find "$(cygpath "D:\Path\To\Images")"/ -type f -name '*.png' -exec convert '{}' -trim '{}' \;
- ディレクトリ内で
D:\Path\To\Images
、 - ()()
-type f
で終わるファイルを探す、png
-name '*.png'
exec
このconvert
コマンドは、結果ファイルごとに'{}'
(参照)プレースホルダーを使用します。