#powershell
#powershell
Вопрос:
мой скрипт не запрашивает пользовательский ввод, когда он выполняется с использованием опции ‘run with powershell’. Однако он запрашивает ввод данных пользователем, когда я редактирую скрипт и запускаю его с помощью инструмента PowerShell ISE.
$MGWServer = Read-Host 'Enter the name of the server where you want to copy the siteKey file from'
# variable to hold the objects of the list file for copying
$hostNameList = Get-Content D:Temphostlist.txt
# copy file from source to destination
foreach ($hostName in $hostNameList)
{
$TARGETDIR = "\$hostNameD$Temp"
Copy-Item -Path "\$MGWServerD$InformaticaPowerCenterispconfigkeyssiteKey" -Destination "$TARGETDIRsiteKey"
}
Комментарии:
1. В чем здесь ваш вопрос? Вы имеете в виду, когда вы щелкаете правой кнопкой мыши на скрипте и выбираете «Запустить с помощью PowerShell» из контекстного меню? Он должен запрашивать пользовательский ввод из-за вашей команды read-host, независимо от того, выполняется ли она из PowerShell ISE или щелчком правой кнопки мыши по вашему сценарию для выполнения…
2. что такое «запуск с помощью powershell»? не могли бы вы, пожалуйста, привести нам полный пример того, как вы запускаете скрипт?
3. Я пытаюсь запустить скрипт для копирования файла из одного места в другое. Скрипт предлагает пользователю ввести имя исходного сервера, с которого необходимо скопировать файл, а затем он берет список hosts из hostlist.txt и копирует файл на эти серверы. Щелкните правой кнопкой мыши сценарий powershell, и вы сможете выбрать один из двух вариантов. 1) Запуск с помощью PowerShell 2) Редактирование. Когда я запускаю с параметром powershell, он просто завершает выполнение скрипта, не позволяя мне перейти на исходный сервер. Однако он запрашивает ввести значение, когда я выбираю опцию редактирования, которая открывается в редакторе ISE.
4. что вы получаете в вашей консоли powershell (не ise) при запуске
get-executionpolicy
Ответ №1:
Я не могу воспроизвести вашу проблему с помощью минимального скрипта:
$X = Read-Host 'Enter your text'
Write-Host $x
Pause
При выполнении из контекстного меню «Выполнить с помощью Powershell» скрипт считывает данные с хоста и записывает их без проблем. В пути к вашему скрипту может быть недопустимый символ. Попробуйте добавить паузу в начале и внутри цикла, чтобы просмотреть любые ошибки. Также попробуйте запустить его из командной строки Powershell, а не из ISE.
Комментарии:
1. теперь он запрашивает пользовательский ввод. извините.. Я не знаю, почему он вел себя таким образом, когда я попробовал это вчера.