2016-06-10 6 views
0

редакторов:
* Этот вопрос сводится к тому: При вводе многострочных команды в командной строке PowerShell , почему я должен нажать Enter дважды представить его? Tony Hinkle's answer объясняет, почему.
* Часть о той же команде, также требующей нажатия клавиши Enter при запуске из сценария была основана на неправильном толковании - команде не требовалось нажатия клавиши, это было просто все еще работает.
Зачем мне нужно дважды вводить ввод, чтобы выполнить командлет Foreach-Object? примечание

Я трубопроводные объекты в командлет Foreach-Object и я заметил, что когда я запускаю его из сценария, он просто сидит там, и что, когда я запускаю его, введя код я в конечном итоге, нажмите два раза после последней фигурной скобки, чтобы заставить ее снова работать.

gci $path -recurse | %{ 
    ... 
} 
echo "test" 

Есть ли способ избежать этого? Так что код просто продолжает работать?

ответ

2

Когда вы вводите скрипт в окно командной строки PowerShell по очереди, ему нужен способ узнать, что вы закончили ввод сценария, поэтому ввод пустой строки является подсказкой для запуска сценария. Чтобы избежать этого, введите все в одну строку:

gci $path -recurse | %{ $_ } ; echo "test" 
+0

Хорошо, и я просто заметил, что мой скрипт на самом деле все еще работает, и я думал, что они были в одной и той же проблеме. Благодаря! – leeand00

+0

В этой папке было больше, чем я думал. – leeand00