2014-09-23 2 views
0

У моего сценария PowerShell есть один параметр. Он вызывается инструментом, который передает ему аргумент. Аргумент содержит специальные символы, такие как «,» и «%». С помощью специальных символов PowerShell ожидает, что аргумент будет окружен одинарными или двойными кавычками. Что делать, если аргумент содержит как одиночные, так и двойные кавычки? Нет проблем. Если аргумент окружен одинарные кавычки, используйте две одинарные кавычки вместо одного внутри аргумента Если в двойные кавычки, используйте две двойные кавычки вместо одного внутри аргументаАргумент с котировками без экранирования или удвоения

Проблема:.. Я не могу изменить аргумент, прежде чем передать его на сценарий, то есть, я не могу удвоить одинарные/двойные кавычки в аргументе. Что я могу сделать?

-Rohan.

EDIT # 1: Причина: Я не могу изменить аргумент, так это то, что он автоматически передается скрипту инструментом. EDIT # 2: Аргумент - это пароль, поэтому мне нужно принять и сохранить его как защищенную строку в скрипте.

+1

Можете ли вы дать нам немного больше, чтобы идти дальше? Что такое аргумент? Почему вы не можете изменить аргумент? – TheMadTechnician

+0

Готово. См. Править. – GigaRohan

+1

Вы можете попробовать передать аргумент парсеру/escaper, сделать то, что вам нужно сделать, а затем вызвать PowerShell с новым аргументом. – tfrascaroli

ответ

0

Одним из вариантов является передача его в виде строки в кодировке Base64, а затем декодировать его в подлиннике:

Using Powershell -encodedcommand to pass parameters

+0

Но для того, чтобы закодировать его, мне все равно нужно принять аргумент как параметр ... Я понимаю, что мой оригинальный скрипт станет «дочерним» скриптом. Но сценарий «parent», который выполняет кодировку и вызов сценария «child», должен принять аргумент, и поэтому мы вернулись к той же проблеме. – GigaRohan

+0

Вы уверены, что вы должны принять аргумент как параметр? Можете ли вы написать свой сценарий, чтобы принять этот вход из «инструмента» через конвейер, минуя парсер? – mjolinor

Смежные вопросы