Показать полную графическую версию : [решено] Проблема с форматированием bat файла
Здравствуйте, есть такой софт ImageMagick.
Позволяет из командной строки работать с графикой.
Я пока разбираю примеры приведённые в руководстве.
И есть несколько примеров где появилась мелкая но досадная помеха.
Исполняемый файл выглядит так:
.\bin\magick -size 520x100 xc:lightblue ^
-font georgia -pointsize 72 ^
-draw "fill black text 27,67 'Led Zeppelin' text 25,68 'Led Zeppelin' text 23,67 'Led Zeppelin' text 22,65 'Led Zeppelin' text 23,63 'Led Zeppelin' text 25,62 'Led Zeppelin' text 27,63 'Led Zeppelin' text 28,65 'Led Zeppelin'" 7.png
а я хотел бы отформатировать вот так:
.\bin\magick -size 320x100 xc:lightblue -font georgia -pointsize 72 ^
-draw "fill black text 27,67 'Led Zeppelin' ^
text 25,68 'Led Zeppelin' ^
text 23,67 'Led Zeppelin' ^
text 22,65 'Led Zeppelin' ^
text 23,63 'Led Zeppelin' ^
text 25,62 'Led Zeppelin' ^
text 27,63 'Led Zeppelin' ^
text 28,65 'Led Zeppelin' ^
fill white text 25,65 'Led Zeppelin' " ^
7.png
но двойные кавычки не дают мне подобной возможности. Файл не работает.
Помогите пожалуйста, а то без форматирования совсем не весело.
Вынесете в отдельный файл, наподобие:
fill black
text 27,67 'Led Zeppelin'
text 25,68 'Led Zeppelin'
text 23,67 'Led Zeppelin'
text 22,65 'Led Zeppelin'
text 23,63 'Led Zeppelin'
text 25,62 'Led Zeppelin'
text 27,63 'Led Zeppelin'
text 28,65 'Led Zeppelin'
fill white
text 25,65 'Led Zeppelin'
и указывайте его в аргументе:
"C:\Program Files\ImageMagick-6.9.3-Q8\convert.exe" ^
-size 320x100 xc:lightblue ^
-font georgia -pointsize 72 ^
-draw @MyFill.txt ^
7.png
Iska, спасибо. А нет варианта без внешнего файла?
Какое нибудь экранирование? или в переменную поместить?
Ваше решение отличное, просто когда надо что то на ходу поменять
гораздо удобнее когда всё перед глазами. И "читабельней".
Разве что в каждой строке прописывать команду. Но тут выползает другая проблема — из-за этого потребуется указывать эту команду со всеми значимыми аргументами полностью. На Вашем примере разницы не увидишь, но можете сравнить:
"C:\Program Files\ImageMagick-6.9.3-Q8\convert.exe" ^
-size 320x100 xc:lightblue ^
-font georgia -pointsize 72 ^
-draw "fill black text 27,67 'Led Zeppelin'" ^
-draw "fill black text 25,68 'Led Zeppelin'" ^
-draw "fill black text 23,67 'Led Zeppelin'" ^
-draw "fill black text 22,65 'Led Zeppelin'" ^
-draw "fill black text 23,63 'Led Zeppelin'" ^
-draw "fill black text 25,62 'Led Zeppelin'" ^
-draw "fill black text 27,63 'Led Zeppelin'" ^
-draw "fill black text 28,65 'Led Zeppelin'" ^
-draw "fill white text 25,65 'Led Zeppelin'" ^
-draw "fill white text 10,44 'Led Zeppelin'" ^
8.png
"C:\Program Files\ImageMagick-6.9.3-Q8\convert.exe" ^
-size 320x100 xc:lightblue ^
-font georgia -pointsize 72 ^
-draw "fill black text 27,67 'Led Zeppelin'" ^
-draw "text 25,68 'Led Zeppelin'" ^
-draw "text 23,67 'Led Zeppelin'" ^
-draw "text 22,65 'Led Zeppelin'" ^
-draw "text 23,63 'Led Zeppelin'" ^
-draw "text 25,62 'Led Zeppelin'" ^
-draw "text 27,63 'Led Zeppelin'" ^
-draw "text 28,65 'Led Zeppelin'" ^
-draw "fill white text 25,65 'Led Zeppelin'" ^
-draw "text 10,44 'Led Zeppelin'" ^
9.png
— во втором файле в последней команде цвет будет взят не белый, а чёрный — видимо, умолчальный (?).
Посему, в данном конкретном случае, лучше использовать отдельную команду «-fill», тогда указанный цвет будет наследоваться всеми последующими командами «-draw». Т.е.:
"C:\Program Files\ImageMagick-6.9.3-Q8\convert.exe" ^
-size 320x100 xc:lightblue ^
-font georgia -pointsize 72 ^
-fill black ^
-draw "text 27,67 'Led Zeppelin'" ^
-draw "text 25,68 'Led Zeppelin'" ^
-draw "text 23,67 'Led Zeppelin'" ^
-draw "text 22,65 'Led Zeppelin'" ^
-draw "text 23,63 'Led Zeppelin'" ^
-draw "text 25,62 'Led Zeppelin'" ^
-draw "text 27,63 'Led Zeppelin'" ^
-draw "text 28,65 'Led Zeppelin'" ^
-fill white ^
-draw "text 25,65 'Led Zeppelin'" ^
-draw "text 10,44 'Led Zeppelin'" ^
10.png
Iska, спасибо большое. Буду пробовать все варианты, посмотрю как удобней.
А не подскажите ли вы какую нибудь среду для работы с bat?
что нибудь вроде Windows PowerShell Integrated Scripting Environment (ISE)
только для cmd? похоже мне не помешает.
А не подскажите ли вы какую нибудь среду для работы с bat? »
Far Manager (http://www.farmanager.com/download.php?l=ru) + идущий в комплекте плагин Colorer + плагин [ESC] (Editor's settings changer) (http://plugring.farmanager.com/plugin.php?pid=364).
Iska, вашим советам цены нет. предложение дописать команды просто в точку.
.\bin\magick -size 470x100 xc:lightblue -font georgia -pointsize 72 ^
-draw "fill black text 27,67 'Led Zeppelin'" ^
-draw "fill black text 25,68 'Led Zeppelin'" ^
-draw "fill black text 23,67 'Led Zeppelin'" ^
-draw "fill black text 22,65 'Led Zeppelin'" ^
-draw "fill black text 23,63 'Led Zeppelin'" ^
-draw "fill black text 25,62 'Led Zeppelin'" ^
-draw "fill black text 27,63 'Led Zeppelin'" ^
-draw "fill black text 28,65 'Led Zeppelin'" ^
-draw "fill white text 25,65 'Led Zeppelin'" ^
LZ.png
малой кровью результат достигнут. ещё раз спасибо.
hp1nt0, ещё раз настойчиво советую: дабы не дублировать «fill color» в каждой команде «-draw», используйте отдельную команду «-fill» в нужном месте (пример приводил в последнем коде чуть выше (http://forum.oszone.net/post-2696657.html#post2696657)).
Да вы совершенно правы. исполнил команду следующего вида:
.\bin\magick -size 470x100 xc:lightblue ^
-font georgia -pointsize 72 ^
-fill black ^
-draw "text 27,67 'Led Zeppelin'" ^
-draw "text 25,68 'Led Zeppelin'" ^
-draw "text 23,67 'Led Zeppelin'" ^
-draw "text 22,65 'Led Zeppelin'" ^
-draw "text 23,63 'Led Zeppelin'" ^
-draw "text 25,62 'Led Zeppelin'" ^
-draw "text 27,63 'Led Zeppelin'" ^
-draw "text 28,65 'Led Zeppelin'" ^
-fill white ^
-draw "text 25,65 'Led Zeppelin'" ^
LZ3.png
и получил идентичный результат.
меня ввело в заблуждение что fill в двойных кавычках не предварялось минусом.
и опять спасибо.
Iska, здравствуйте.
Это конечно офтоп но поскольку я видел что вы тоже используете IM
то может это будет вам полезно знать: в IM7 добавили возможность добавлять файл с командами
форматирование которого не надо приводить в соответствие ограничений накладываемых
средой исполнения. Описание и обсуждение на форуме IM
http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=31079
As mentioned the primary focus of the changes to the Shell API or Command Line Interface is the abstraction so that not only can options be read from command line arguments, but also from a file (script) or from a file stream (interactive commands, or co-processing).
hp1nt0, ну, давным-давно пора было это сделать.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.