У меня есть две команды, которые должны быть выполнены в PowerShell. Все остальное может быть в пакетном режиме. Я мог бы написать все это в PowerShell, но я должен убедиться, что политика выполнения установлена правильно, и это может быть проблемой безопасности для наших нетадминов на этих серверах.
В моем пакетном скрипте мне нужно:
- Сбить кеш приложения IIS (я могу использовать AppCmd)
- Загрузите новый zip-файл с сервера (используя мою wget версию Powershell)
- Удалить все старые файлы в каталоге www
- Распакуйте zip-файл в каталог www
- Откройте кеш приложений IIS.
На Шаге 2 мои две команды powershell:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://path/to/file", "file.name")
Есть ли способ объединить эти две строки в одну команду Powershell, так же, как в Unix, используя точки с запятой? Я попытался поставить точку с запятой между двумя строками и получить следующую ошибку:
Missing ')' in method call.
At line:1 char:62
+ $client.DownloadFile( <<<< http://path/to/file )
+ CategoryInfo : ParserError: (CloseParenToken:TokenId) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInMethodCall
Однако внутри фактического скрипта Powershell, называемого "wget.ps1", он выполняется следующим образом:
$ powershell -c wget.ps1