Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Помогите экранировать кавычки.

Ответить
Настройки темы
PowerShell - Помогите экранировать кавычки.

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго всем дня, прошу помощи, уже запутался, в скриптах я новичек.
Не могу заставить работать следующий кусок кода.
В переменных randomname1 и 2 хранится случайное имя картинки, так вот надо либо чтобы этот кусок выполнился через cmd /c либо создать и запустить батник, без разницы.
Но у меня почему то в батник не передаются значения переменных - а просто randomname1.jpg.
Я так подозреваю что не правильно экранирую аргументы.
Памагити.

HTML код: Выделить весь код
##Создание батника для склейки картинок $PSDefaultParameterValues['*:Encoding'] = 'utf8' 'magick "$randomname1.jpg" "$randomname2.jpg" -set option:ww "%%[fx:max(u.w,v.w)]" -set option:hh "%%[fx:max(u.h,v.h)]" -resize "%%[ww]x%%[hh]" -background white -gravity center +append -quality 100 out.jpg' | Out-File "K:\Test\imagick\merge.bat" -append


Отправлено: 10:13, 14-05-2022

 

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


1. Строка, заключенная в одинарные кавычки, является подробной строкой. Строка передается в команду точно так же, как она вводится. Подстановка не выполняется.
2. Даже если не одинарные кавычки, то .jpg в $randomname1.jpg будет вопспринято не как окончание имени переменной, и не как подстановка после вывода оной, а как параметр, в котором что-то вроде как может быть записано (это пошик, в нем почти все - объект, из которого можно надергать параметров).
3. выводить строку ради того чтобы передеать ее as is в out-file, конечно, можно, но зачем если есть add-content?

пробуй так, если я правильно понял суть желаемого:
Код: Выделить весь код
$result = 'magick "' + $randomname1 + '.jpg" "' + $randomname2 + '.jpg" -set option:ww "%%[fx:max(u.w,v.w)]" -set option:hh "%%[fx:max(u.h,v.h)]" -resize "%%[ww]x%%[hh]" -background white -gravity center +append -quality 100 out.jpg'
Add-Content -path ./test.txt -Value $result
ну и да, совсем забыл

4. Зачем пошиком делать батник??? не верю что задача не решается целиком в пошике.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:27, 14-05-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 346
Благодарности: 64

Профиль | Цитировать


наугад: попробуй ^ перед "
... а вообще , ССПП(согласен с пред.постером) - зачем из ПоШ делать батнег, и потом его выполнять?!
так-то даже очень понимаю ПОЧЕМУ ты это делаешь, потому что не знаешь ПоШ, а батнеги знаешь. Я сам так делал неск.лет с JS пока не упёрся. Надо-таки выучить JS чуток, ибо это ппц. полный, если дальше продолжать из JS заводить bat и кавычки это только одно что... там ещё & будут, когда со ссылками захочешь работать(а в бат это разделители команд).. жжжжжуть!

Так что да, сделать можно(попробуй ^ или экранирование), но лучше что-то одно пользовать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:51, 14-05-2022 | #3


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо, все заработало.

Отправлено: 08:25, 15-05-2022 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Помогите экранировать кавычки.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Кавычки в пароле Сиволапый Скриптовые языки администрирования Windows 4 31-10-2017 07:38
CMD/BAT - Как экранировать \ NikiWin Скриптовые языки администрирования Windows 9 08-08-2017 09:25
CMD/BAT - экранировать скобки в данных из реестра kokos76 Скриптовые языки администрирования Windows 9 11-01-2016 08:21
Интерфейс - Нестандартные кавычки EN130 Microsoft Windows 2000/XP 5 13-10-2010 15:20
CMD/BAT - [решено] Как экранировать символ? Seryoga204 Скриптовые языки администрирования Windows 7 27-09-2010 22:50




 
Переход