Что такое ‘>>’ при запуске сценария powershell?

#powershell

#powershell

Вопрос:

Я пытаюсь выполнить команду powershell Переместить почтовый ящик, когда я нажимаю enter, чтобы запустить ее, приглашение изменяется на >> но больше ничего не происходит. Все параметры были предоставлены, поэтому я не вижу в этом причины. Это почти так, как будто он ожидает ввода, но не запрашивает, для чего.

     [PS] C:>Move-Mailbox -TargetDatabase "W2K3-LA-EXCHFirst Storage GroupMailboxStore" -Identity Toddles -Gl
obalCatalog W2K3.e2k3.exch.com" -SourceForestGlobalCatalog W2K3-LA.e2k7.com -NTAccountOU "OU=Users,DC=e2k3,DC
=exch,DC=com" -SourceForestCredential $SourceCredential -TargetForestCredential $TargetCredential
>>
  

Комментарии:

1. Это происходит, когда ваши глаза устают 😉 и пришло время сделать перерыв или поспать!

Ответ №1:

В этом случае >> — это сигнал о том, что PowerShell ожидает завершения синтаксиса. В хорошем случае, если бы вы выполнили следующее в интерактивной консоли:

 get-process | 
  

Затем вы получите >>, чтобы сообщить вам, что команда не завершена. Если бы я тогда сделал:

 format-table
  

И нажмите enter пару раз, затем он выполнит оценку.

В вашем случае, похоже, у вас непарные кавычки, из-за чего PowerShell неверно истолковывает это и думает, что вам еще нужно кое-что добавить, чтобы сделать его полностью однострочным. Проверьте этот параметр, я думаю, вам нужна начальная цитата:

 -GlobalCatalog W2K3.e2k3.exch.com"
  

Комментарии:

1. Спасибо! Я смотрел на эту строку примерно полчаса и просто не мог увидеть отсутствующую цитату. Как только я это исправил, все заработало нормально.

Ответ №2:

Это указывает на то, что команда не завершена. Если не намеренно, это означает, что вы не закрыли выражение, блок кода или строку.

Ответ №3:

Это означает, что ваши скобки или кавычки не сбалансированы. В вашем случае вам не хватает двойной кавычки:

 -GlobalCatalog W2K3.e2k3.exch.com"
  

должно быть:

 -GlobalCatalog "W2K3.e2k3.exch.com"