Я немного новичок в Power Shell.Я работаю над сценариями для автоматизации процесса сборки ПК.Общая схема процесса такова, что результирующая программа при первоначальном запуске запрашивает у пользователя некоторые данные, сохраняет эти данные в реестре для последующего извлечения и затем выполняет свои задачи.Он переименовывает машину, присоединяет ее к домену и выполняет другие основные настройки.Из-за перезагрузок, необходимых для переименования и присоединения к домену, я использую значение состояния в реестре, которое читается при запуске программы.Я использую переключатель, чтобы перейти к соответствующей метке в сценарии, в зависимости от стадии.Я также использую метки, где я проверяю пользовательский ввод.Здесь я сталкиваюсь с проблемами - ярлыки выдают ошибки.
Я посмотрел несколько сайтов о ярлыках, и, основываясь на том, что я вижу, я их исправляю - если я что-то не понял (чтовсегда есть возможность).Я сделал следующее:
:Label
<code goes here>
:Label
{
<code goes here>
}
:Label <code goes here>
Все они ведут себя одинаково.
Это пример кода, который использует метки и выдает ошибки (более поздние части даже не выполняются в этомточка).Это часть пользовательского ввода.
# User Input
:UserInput Write-Output "Please provide the following information in order to properly image the system:"
:Country $Country=Read-Host "Enter 2 character destination country code"
IF(!$Country)
{
Write-Output "The destination country is required!"
Break :Country
}
Этот фрагмент кода генерирует следующие ошибки:
:UserInput : The term ':UserInput' 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 <sanitized for my protection>Kiosk_PC_Build_V0_1a.ps1:79 char:1
+ :UserInput Write-Output "Please provide the following information in ...
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (:UserInput:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
:Country : The term ':Country' 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 <sanitized for my protection>Kiosk_PC_Build_V0_1a.ps1:81 char:5
+ :Country $Country=Read-Host "Enter 2 character destination countr ...
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (:Country:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Я получаю ту же ошибку «Термин ....» длякаждая из перестановок, которые я использую.У меня такое ощущение, что мне не хватает чего-то простого.