none
PowerShell - экранировать символ пробела RRS feed

  • Вопрос

  • Привет всем.
    Пытаюсь вызвать curl из PowerShell (curl - "настоящий", а не алиас Invoke-WebRequest)
    Сам curl обращается к UNIX хосту, поэтому перед всеми кавычками в его параметрах пришлось поставить \

    curl $command -d $parameters1 -d --% params="{\"from_date\":\"2023-04-12 12:08:00\",\"to_date\":\"2023-04-12 12:53:30\"}"

    так - работает за счет --% . Без него - не работает потому что между датой и временем - пробелы.

    Каким образом эти пробелы можно "экранировать" в переменной, чтобы curl можно было вызывать как-то так:

    $parameters2 = 'params="{\"from_date\":\"2023-04-12 12:08:00\",\"to_date\":\"2023-04-12 12:53:30\"}"'
    curl $command -d $parameters1 -d $parameters2




    • Изменено Alex Kislov 16 апреля 2023 г. 18:49
    16 апреля 2023 г. 18:41

Ответы

Все ответы

  • Привет,

    PowerShell использует символ серьезного ударения ( ` ) в качестве управляющего символа. Просто добавьте его перед каждым пробелом в имени файла. (Вы найдете этот символ над клавишей Tab и под клавишей Esc на клавиатуре.)

    Каждый символ серьезного акцента сообщает PowerShell, что следует экранировать следующий символ.

    Надеюсь, это разрешит ваш запрос !!

    --Если ответ полезен, проголосуйте и примите его как ответ--
    17 апреля 2023 г. 13:46
  • Это (`) и (\) было проверено с самого начала. Не помагает...
    Возможно, потому что сам curl обращается к unix хосту.
    17 апреля 2023 г. 16:27
  • Решение оказалось простым. Вместо пробела в аргументе надо использовать %20
    • Помечено в качестве ответа Alex Kislov 17 апреля 2023 г. 19:45
    17 апреля 2023 г. 19:45