如何使用powershell使路径成为路径中包含空格的超链接

时间:2017-08-31 19:55:27

标签: powershell hyperlink

我正在使用我创建的powershell脚本,以便在文件夹中收到文件时向用户发送电子邮件。我遇到的问题是正在观看的一些文件夹路径在路径中有一个空格,打破了发送的电子邮件正文中的超链接。如何包含空格,以免破坏超链接。

我用它来获取路径名:

$(split-path $Event.SourceEventArgs.FullPath)

要添加到我正在使用的电子邮件正文的代码如下:

$global:newFiles.Add("`n[$(Get-Date -Format HH:mm:ss)]`tNew file named $($Event.SourceEventArgs.Name) arrived in $(split-path $Event.SourceEventArgs.FullPath) and was copied to $($dPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).AddDays(1 + $(1,2 -eq 7 - [int]$formatteddate.dayofweek) ).ToString('MMM d yyyy'))") 

以下是电子邮件的发送方式:

while ($watcher.EnableRaisingEvents -or $global:newFiles.Count -gt 0) {   

#Sleep
Start-Sleep -Seconds 60

if($global:newFiles.Count -gt 0) {
    #Convert list of strings to single string (multiline)
    $smtpbody = $global:newFiles 

    $smtp.Send($smtpFrom, $smtpTo, $smtpSubject, $smtpBody) 

    #Mail sent, Empty array
    $global:newFiles.Clear()
}

}

2 个答案:

答案 0 :(得分:1)

正如TheIncorrigible1所提到的,你错过了HTML标签,告诉Outlook这是一个超链接:

$Body = "<a href='\\vavm\FTP\K NW\Incoming'>\\vavm\FTP\K NW\Incoming</a>"
Send-MailMessage -To $MailTo -SmtpServer $MailServer -From $MailFrom -Body $MailBody -BodyAsHtml -Subject $MailSubject

答案 1 :(得分:-2)

我能够通过在路径名称周围添加一个开放和封闭的V形图来简单地解决这个问题。<$(split-path $Event.SourceEventArgs.FullPath)>

以下全部代码:

$global:newFiles.Add("`n[$(Get-Date -Format HH:mm:ss)]`tNew file named $($Event.SourceEventArgs.Name) arrived in <$(split-path $Event.SourceEventArgs.FullPath)>  and was copied to $($dPath)\$((Get-Date).ToString('yyyy'))\$((Get-Date).ToString('MMM yyyy'))\$((Get-Date).AddDays(1 + $(1,2 -eq 7 - [int]$formatteddate.dayofweek) ).ToString('MMM d yyyy'))")