2017-03-05 9 views
2

プログラムImageMagickには、画像形式の変換に使用できるconvertコマンドがあります。たとえば、私は絵test.jpgWindowsでファイル名を取得する方法は?

convert test.jpg test.png 

を持ってtest.pngを与えるだろう。

このコマンドを右クリックメニューに追加して作業を簡略化します。私はtest.jpgを提出するには、このコマンドを実行すると、それはtest.jpg.pngを与えるHKEY_CLASSES_ROOT -- * -- shell

C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe -density 600 "%1" %1.png 

regeditに項目を追加します。私はファイルtest.pngを取得したいと思います。コマンドラインをどのように変更すればよいですか?

必要な機能を持っている私はシェルハンドラはこれを直接サポートしている場合わからないんだけど、私は cmdでそれを周りに働くだろう
+1

入力変数に応じて、最終的な '%1.png'を' '%〜dpn1.png ''に変更するか、 ''%〜n1.png "'に変更します。 – Compo

+0

sendtoフォルダにバッチファイルを置くだけで済みます。 – Squashman

答えて

0

cmd /d /c "for /f "delims=" %%i in ('@echo %1') do @start "" "C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe" -density 600 "%1" "%%~dpni.png"" 
  • @echo %1は作るシェルが提供する完全なパスをエコーそれは処理可能な結果としてCMDに利用可能です。式は一重引用符で囲まれているため、これがコマンドになります。
  • for /fが文字列(1つの文字列を含む)のリストとしてその結果を解析し、%iにそれぞれ(1)文字列を置き、%i%~dpnitakes drive letter, path and nameこと(ただし、拡張)可能にします。
  • @startは、CMDがプログラムの終了を待たないようにするために使用されます。 startの後の空の引用符はvery requiredです。
0

あなたの方法は良いです。あなたは少しの構文を変更する必要がありますが:

C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe -density 600 "%1" %1.png 

C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe -density 600 "%1" "%~n1.png" 

に私は、これはあなたの問題をうまく願っています。そうでない場合でも、 - あなたは、このコマンドを(私が修正された第二1を、)を含むバッチファイルを作成し、(セイ 「C:\ MyScript.Bat」)PCのどこかに保存することができ

そして、試してみてください

C:\MyScript.bat "%1" 

そして、これは柔軟な方法です。 注:あなたはあなたが変えるバッチファイルに適用することができ、右クリックのコンテキストメニューに加えるたいすべての変更

"C:\Program Files\ImageMagick-7.0.3-Q16\convert.exe" -density 600 "%1" "%~n1.png" 

:バッチ内コードのようになります。

希望しました!

+0

お返事ありがとうございます。最初のアプローチはうまくいかず、 '%〜n1.png'を与えます。私は2番目のアプローチを試みましたが、うまくいきません。たぶん私はいくつかの操作を間違った。試してもらえますか? – Ice0cean

+0

'%〜n1.png'を使用するように提案されている[削除済み回答](http://stackoverflow.com/a/42608388/11683)が既にあります。それは動作しません。バッチファイルが機能するはずです。 – GSerg

関連する問題