2017-03-05 63 views
2

該程序ImageMagick有一個convert命令可用於轉換圖片格式。例如我有一張圖片test.jpg如何在Windows中獲取文件名?

convert test.jpg test.png 

會給test.png。

我想將此命令添加到右鍵菜單以簡化我的工作。我在HKEY_CLASSES_ROOT -- * -- shell

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

添加項目到regedit當我運行此命令文件test.jpg,它會給test.jpg.png。我想要獲得文件test.png。我應該如何修改命令行?

+1

取決於您的輸入變量,將最終的'%1.png'更改爲'「%〜dpn1.png」',或者可能''%〜n1.png'''。 – Compo

+0

您可以將一個批處理文件放在sendto文件夾中。 – Squashman

回答

0

我不知道如果shell處理器直接支持這一點,但我會cmd各地工作,它擁有所需的全部功能:

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導致作爲字符串(包含一個字符串)的列表解析,使各(一個)串入%i並允許%~dpnitakes drive letter, path and name(但不擴展)出%i的。
  • @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" 

我希望這將解決你的問題。但是,如果沒有 - 您可以包含此命令(注:第二個,這是由我修改)一個批處理文件,並在電腦的地方保存它(說「C:\ MyScript.Bat」

而且,嘗試使鑰匙在註冊表:

C:\MyScript.bat "%1" 

而且,這是做它的靈活方式。 注:批次的代碼如下:

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

你想使右鍵單擊上下文菜單的任何更改,您可以通過改變批處理文件適用。

希望我幫助!

+0

謝謝你的回答。第一種方法不起作用並給出'%〜n1.png'。我嘗試了第二種方法,它不起作用。也許我做了一些錯誤的操作。你可以試試嗎? – Ice0cean

+0

已經有一個[刪除的答案](http://stackoverflow.com/a/42608388/11683)建議使用'%〜n1.png'。這是行不通的。該批處理文件應該工作。 – GSerg

相關問題