如何在没有空格的情况下将变量写入控制台?我尝试时有问题:
$MyVariable = "Some text"
Write-Host "$MyVariableNOSPACES"
我想要以下输出:
Some textNOSPACES
答案 0 :(得分:57)
另一种选择,可能更规范的方法是使用花括号来描绘名称:
$MyVariable = "Some text"
Write-Host "${MyVariable}NOSPACES"
这对于路径来说特别方便,例如${ProjectDir}Bin\$Config\Images
。但是,如果变量名后面有\
,那么PowerShell就可以认为不是变量名的一部分。
答案 1 :(得分:20)
您需要将变量包装在$()
中例如,Write-Host "$($MyVariable)NOSPACES"
答案 2 :(得分:10)
Write-Host $MyVariable"NOSPACES"
会工作,虽然看起来很奇怪......我会选择:
Write-Host ("{0}NOSPACES" -f $MyVariable)
但那只是我......
答案 3 :(得分:3)
您还可以使用后面的勾选`
,如下所示:
Write-Host "$MyVariable`NOSPACES"
答案 4 :(得分:1)
最简单的解决方案:Write-Host $ MyVariable“NOSPACES”
答案 5 :(得分:0)
如果速度很重要...
$MyVariable = "Some text"
# slow:
(measure-command {foreach ($i in 1..1MB) {
$x = "$($MyVariable)NOSPACE"
}}).TotalMilliseconds
# faster:
(measure-command {foreach ($i in 1..1MB) {
$x = "$MyVariable`NOSPACE"
}}).TotalMilliseconds
# even faster:
(measure-command {foreach ($i in 1..1MB) {
$x = [string]::Concat($MyVariable, "NOSPACE")
}}).TotalMilliseconds
# fastest:
(measure-command {foreach ($i in 1..1MB) {
$x = $MyVariable + "NOSPACE"
}}).TotalMilliseconds
答案 6 :(得分:0)
$ Variable1 ='www.google.co.in /'
$ Variable2 ='图片'
写输出($ Variable1 + $ Variable2)