使用@Splat发送电子邮件附件结果,然后在成功执行后删除。

36 浏览
0 Comments

使用@Splat发送电子邮件附件结果,然后在成功执行后删除。

假设我有以下片段:

$assoc = New-Object PSObject -Property @{
    Id = 42
    Name = "Slim Shady"
    Owner = "Eminem"
}
Write-Host $assoc.Id + "  -  "  + $assoc.Name + "  -  " + $assoc.Owner

我希望这个片段显示:

42 - Slim Shady - Eminem

但它显示为:

42 + - + Slim Shady + - + Eminem

这让我想到了+操作符不适合用于连接字符串和变量。你应该如何处理这个问题呢?

admin 更改状态以发布 2023年5月22日
0
0 Comments

单引号和双引号之间有区别。(我使用的是PowerShell 4)

你可以这样做(就像Benjamin所说的):

$name = 'Slim Shady'
Write-Host 'My name is'$name
-> My name is Slim Shady

或者你可以这样做:

$name = 'Slim Shady'
Write-Host "My name is $name"
-> My name is Slim Shady

单引号是用来表示精确值,就像这个字符串一样,请输出。

而双引号是当你想要进行一些预处理时(如变量、特殊字符等)使用的。

因此:

$name = "Marshall Bruce Mathers III"
Write-Host "$name"
-> Marshall Bruce Mathers III

而:

$name = "Marshall Bruce Mathers III"
Write-Host '$name'
-> $name

(我发现如何:转义字符、分隔符和引号是一个很好的参考)。

0
0 Comments

Write-Host "$($assoc.Id) - $($assoc.Name) - $($assoc.Owner)"

参考 Windows PowerShell 语言规范第3版,第34页,子表达式扩展。

0