【发布时间】:2018-09-05 21:51:08
【问题描述】:
如题,这段“剧本”能做成单行吗?最好不要分号。
为什么?只是为了其中的乐趣和教育部分完全。
$mbx=get-mailbox "a mailbox"
$calendar=$($mbx.PrimarySmtpAddress.toString()) + ":\" + (Get-MailboxFolderStatistics $mbx.PrimarySmtpAddress.toString() | Where-Object { $_.Foldertype -eq 'Calendar' } | Select-Object -First 1).Name
$var=Get-MailboxFolderPermission -Identity $calendar -ErrorAction SilentlyContinue | select-object @{Label="Identity";expression={$mbx.Alias}},FolderName,User,AccessRights
$var.Foreach({ if ($_.User.DisplayName -eq 'Test') { $_.User.DisplayName }})
我到达的最近的是 3 行:
$mbx=get-mailbox "a mailbox"
$Perm=Get-MailboxFolderPermission -Identity $($mbx.PrimarySmtpAddress.toString() + ":\" + (Get-MailboxFolderStatistics $mbx.PrimarySmtpAddress.toString() | Where-Object { $_.Foldertype -eq 'Calendar' } | Select-Object -First 1).Name) | Select-Object @{Label="Identity";expression={$mbx.Alias}},FolderName,User,AccessRights
$Perm.Foreach({ if ($_.User.DisplayName -eq 'Test') { $_.User.DisplayName }})
编辑:
我靠近了几步,但这需要输入两次邮箱。
@(Get-MailboxFolderPermission -Identity $($(Get-Mailbox "a mailbox" | select-Object -ExpandProperty PrimarySmtpAddress).toString() + ":\" + (Get-MailboxFolderStatistics $(Get-Mailbox "a mailbox" | select-Object -ExpandProperty PrimarySmtpAddress).toString() | Where-Object { $_.Foldertype -eq 'Calendar' } | Select-Object -First 1).Name)).Foreach({ if ($_.User.DisplayName -eq 'Test') { $_.User.DisplayName }})
【问题讨论】:
-
任何东西都可以是带有足够分号的单行...
-
我了解整个教育方面,但请不要沉迷于单行。总是,总是选择代码的可读性和可维护性而不是“聪明”。
-
@boxdog 我从来没有提到单线是正确的,但我确实提到它是为了它的乐趣和教育部分。 ;)
-
如果这是你想做的事情,那就去学习 Perl...foo.be/docs/tpj/issues/vol3_2/tpj0302-0012.html
-
空白是编写无人能维护的代码的好地方en.wikipedia.org/wiki/Whitespace_(programming_language)
标签: powershell scripting office365 exchange-server