У меня есть набор команд, которые я хотел бы запустить и сделать некоторые проверки кода возврата результата, поэтому я подумал, что было бы легко поместить их в массив для выполнения.
Давайте возьмем этоодин в качестве примера:
C:\windows\system32\inetsrv\AppCmd.exe set config "Default Web Site/" /section system.webServer/webdav/authoring /enabled:true /commit:apphost
Теперь, когда я помещаю его в свой массив без кавычек, он немедленно интерпретируется как команда, команда выполняется и результат записывается вмассив:
$commands = @()
$commands += C:\windows\system32\inetsrv\AppCmd.exe set config "Default Web Site/" /section system.webServer/webdav/authoring /enabled:true /commit:apphost
Когда я использую кавычки, чтобы поместить его в массив в виде строки, попытка выполнить его не работает.
PS> $commands = @()
PS> $commands += "C:\windows\system32\inetsrv\AppCmd.exe set config ""Default Web Site/"" /sectio n:system.webServer/webdav/authoring /enabled:true /commit:apphost"
PS> $commands[0]
C:\windows\system32\inetsrv\AppCmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost
PS> & $commands[0]
The term 'C:\windows\system32\inetsrv\AppCmd.exe set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:2
+ & <<<< $commands[0]
+ CategoryInfo : ObjectNotFound: (C:\windows\syst.../commit:apphost:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Итак, как правильно поставитьэта команда в массив, очередь или что-нибудь еще подходит, чтобы я мог выполнить ее, когда настало время?