Перенос кода летучей мыши на powershell - PullRequest
0 голосов
/ 05 февраля 2012

Портирование моих скриптов bat в PowerShell. Две проблемы: $info разворачивается в строки как "$info"; при запуске команд из файла где-то портятся аргументы (в интерактивном режиме появляется только первая проблема. на консоль выводится «hg tip: invalid arguments»).

Команда:

hg tip --template "<?php\r\n// ќв®  ўв®¬ вЁзҐбЄЁ бЈҐ­ҐаЁа®ў ­­л© д ©« б Ё­д®а¬ жЁҐ© ® ⥪г饬 ЎЁ«¤Ґ ¬®¤г«п\r\n$info = array(\r\n'rev' => '{rev}',\r\n'date' => '{date|isodate}',\r\n'changeset' => '{node}',\r\n);" > modules/video/version.php

Ответы [ 2 ]

2 голосов
/ 05 февраля 2012

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

Обновление:

Хорошо, так что в основном у вас есть 3 подхода.

  • Одинарные кавычки - выражения не оцениваются. Но вам нужно экранировать знак одинарных кавычек.
  • Двойные кавычки - выражения оцениваются. Итак, если вы хотите использовать знак $, вам нужно его избежать.
  • Here-strings - Либо одинарные, либо двойные кавычки (оцениваются / не оцениваются). Строки могут занимать несколько строк. Вам не нужно ничего избегать, если вы используете метод одинарных кавычек

Пример для третьего подхода:

[12:06:58 PM] ~> $str = @'
'$'`#'"<>\/@
'@ 


_______________________________________________________________________________________________________________________________________________________________________________________________
[12:07:15 PM] ~> $str
'$'`#'"<>\/@
1 голос
/ 05 февраля 2012

, чтобы не оценивать $info как переменную, вы должны записать его как `$info. Как:

 hg tip --template "<?php\r\n// ќв®  ўв®¬ вЁзҐбЄЁ бЈҐ®ў © д ©« б Ё®а¬ жЁҐ© ® ⥪г饬 ЎЁ«¤Ґ ¬®¤г«п\r\n`$info = array(\r\n'rev' => '{rev}',\r\n'date' => '{date|isodate}',\r\n'changeset' => '{node}',\r\n);" > modules/video/version.php

$ - ключевое слово powershell, поэтому `$

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...