2010-11-09 1 views
4

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

 var deploy = new DeployCommand(); 
     deploy.BranchDir = @""; 
     deploy.DevDir = @"d:\sandbox\testdeploy"; 
     deploy.Invoke(); 

я поставил точку останова в моем командлете и когда я исполняю .invoke него никогда ничего не делает. Единственный метод, который я переопределяю в моем командлете, - «ProcessRecord», но когда я вызываю его, он никогда ничего не делает. Я уверен, что это что-то простое. Кто-нибудь знает, что я делаю неправильно?

ответ

6

Вызов .Invoke() возвращает IEnumerator ... вам нужно повторить его (например, вызвать MoveNext()), чтобы командлет действительно вызывался. См. Примечания к MSDN docs page

+0

Спасибо, Джей. Я знал, что это действительно просто. Я ценю вашу помощь. – coding4fun