Террор довольно специфичен c.
Нуль означает Ноль. / С ним не с чем работать.
Не догадайся об этом (ну, мы все иногда так делаем ... ; -} - но не надейся не превращайте это в привычку.), поскольку вы просто излишне расстраиваете себя, так как это приводит к большому количеству ненужных выдергиваний волос, и у меня не осталось волос, ооо, вы знаете, что я имею в виду.
Always dev вы кодируете шаги, чтобы убедиться, что вы получаете то, что ожидаете. Таким образом, нет необходимости переходить к следующему шагу, пока активная строка / блок не будет действительным.
Пример (использование сжатия переменных для назначения результатов и вывода на экран)
($outlook = new-object -com outlook.application)
# Results
<#
Application : Microsoft.Office.Interop.Outlook.ApplicationClass
Class : olApplication
Session : Microsoft.Office.Interop.Outlook.NameSpaceClass
Parent :
Assistant :
Name : Outlook
Version : 16.0.0.12325
...
PickerDialog : System.__ComObject
#>
($contacts = $outlook.Session.GetDefaultFolder(10))
# Results
<#
Application : Microsoft.Office.Interop.Outlook.ApplicationClass
Class : 2
Session : Microsoft.Office.Interop.Outlook.NameSpaceClass
Parent : System.__ComObject
DefaultItemType : 2
DefaultMessageClass : IPM.Contact
...
#>
$contacts.Items
# Results
<#
Application : Microsoft.Office.Interop.Outlook.ApplicationClass
Class : 40
Session : System.__ComObject
Parent : System.__ComObject
Actions : System.__ComObject
Attachments : System.__ComObject
BillingInformation :
Body :
Categories :
...
#>
$contacts.Items |
% {
if($_.MobileTelephoneNumber -eq '')
{
"MobileTelephoneNumber: $($PSItem.MobileTelephoneNumber)"
"OtherTelephoneNumber: $($PSItem.OtherTelephoneNumber)"
<#
$_.MobileTelephoneNumber = $_.OtherTelephoneNumber
$_.OtherTelephoneNumber = ''
$_.save()
#>
}
} | Select-Object -First 20
# Results
<#
MobileTelephoneNumber:
OtherTelephoneNumber:
...
MobileTelephoneNumber:
OtherTelephoneNumber: (800) 555-1212 ,,,4472
...
#>