Powershell отображает все содержимое массива вместо пошагового перехода по одному - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в powershell, и я работаю над сценарием, который открывает край и выполняет поиск по определенному термину.У меня есть массив терминов и цикл for, который проходит через массив.Цикл работает, но вместо отображения одного элемента массива в каждом цикле используются все элементы.Вот мой сценарий:

#create dictionary
$diction = @("iphone","android","untidy","stew","camp","fresh","groan","warlike","party","bake","zephyr","play","lamp")

#loop
For ($i=0; $i -lt $diction.Length; $i++) {

    start microsoft-edge:http://www.bing.com/search?q=$diction[$i]
    Start-Sleep -s 5
    TASKKILL /IM MicrosoftEdge.exe

}

Read-Host -Prompt "Press Enter to exit"

Вместо http://www.bing.com/search?q=iphone, затем http://www.bing.com/search?q=android и т. Д. Фактический результат - http://wwwbing.com/search?q= Неопрятный тушеное мясо для iphone android свежий стон воинственной вечеринкиbake zephyr play lamp

Я что-то упустил, как отобразить элемент массива в powershell?Любая помощь приветствуется, спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Если вы делаете powershell, вы должны передать | вместо этого для оператора. Во время передачи передаваемое значение сохраняется как $ _ . Значение объекта Foreach-объекта равно %. В основном это массив, передаваемый в объект foreach

"iphone","android","untidy","stew","camp","fresh","groan","warlike","party","bake","zephyr","play","lamp" | 
    %{
        start microsoft-edge:http://www.bing.com/search?q=$_
        Start-Sleep -s 5
        TASKKILL /IM MicrosoftEdge.exe
    }
Read-Host -Prompt "Press Enter to exit"
0 голосов
/ 20 сентября 2018

Обновите ваш код следующим образом.Кроме того, используя переменную для вашей команды, вы можете использовать отладчик, такой как ISE или VSCode, чтобы фактически увидеть, что передается.

$cmd = "microsoft-edge:http://www.bing.com/search?q=$($diction[$i])"
start $cmd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...