String PowerShell无法删除文本和字符串之间的空格

String PowerShell无法删除文本和字符串之间的空格,string,powershell,String,Powershell,在PowerShell中,我试图找到一种从文本和字符串输出中删除文本的方法 Write-Host 'File located at C:\'$Fileline.FilePath - 我得到的输出是 c:\ program files\path 我想删除c:\和“程序文件”之间的空格。我是否必须将文本转换为字符串,然后将其输出为两个字符串,然后删除空格?发生这种情况是因为您将多个字符串传递给写入主机,然后它将与空格连接。这种行为在某种程度上是写入主机所特有的 您可以通过向Write Host发

在PowerShell中,我试图找到一种从文本和字符串输出中删除文本的方法

Write-Host 'File located at C:\'$Fileline.FilePath -
我得到的输出是

c:\ program files\path

我想删除c:\和“程序文件”之间的空格。我是否必须将文本转换为字符串,然后将其输出为两个字符串,然后删除空格?

发生这种情况是因为您将多个字符串传递给
写入主机,然后它将与空格连接。这种行为在某种程度上是写入主机所特有的

您可以通过向
Write Host
发送一个双引号字符串来满足您的需要,然后您可以将变量放入其中并将其展开。但是,由于要访问变量的属性,因此需要将其包装在子表达式中:
$()


之所以会发生这种情况,是因为您正在将多个字符串传递给
写入主机
,然后它将这些字符串与空格连接起来。这种行为在某种程度上是写入主机所特有的

您可以通过向
Write Host
发送一个双引号字符串来满足您的需要,然后您可以将变量放入其中并将其展开。但是,由于要访问变量的属性,因此需要将其包装在子表达式中:
$()


尝试使用PowerShell
-f
格式化运算符:

Write-Host ("File located at C:\{0} -" -f $FileLine.FilePath)

关于
-f
at和at

有很好的信息,请尝试使用PowerShell
-f
格式化操作符:

Write-Host ("File located at C:\{0} -" -f $FileLine.FilePath)

关于位于C:\$($Fileline.FilePath)的
-f
写入主机”文件和位于C:\$($Fileline.FilePath)的
写入主机”文件,有很好的信息。
这对我不起作用。似乎假定-f是“-foregroundcolor”选项的开始。它给出了以下消息:无法绑定参数“ForegroundColor”
这将起作用,因为它将使
-f
像对待Write Host:
Write Host(“位于C:\{0}-”-f$FileLine.FilePath的文件)的参数一样对字符串进行操作。
Hmmm。。。我从未见过这种情况发生,但您可以使用
Write Host(“位于C:\{0}-”-f$FileLine.FilePath的文件)
.FWIW强制执行正确的解释。由于参数解释问题,我在执行此操作时始终必须使用大括号。在一个正常的环境中你必须这样做是有道理的。这对我来说不起作用。似乎假定-f是“-foregroundcolor”选项的开始。它给出了以下消息:无法绑定参数“ForegroundColor”
这将起作用,因为它将使
-f
像对待Write Host:
Write Host(“位于C:\{0}-”-f$FileLine.FilePath的文件)的参数一样对字符串进行操作。
Hmmm。。。我从未见过这种情况发生,但您可以使用
Write Host(“位于C:\{0}-”-f$FileLine.FilePath的文件)
.FWIW强制执行正确的解释。由于参数解释问题,我在执行此操作时始终必须使用大括号。你必须在正常的环境中这样做是有道理的。这对我来说非常有效,但是为什么你要在行的末尾包含
空格-
?我只是在镜像你原始代码中的内容,但是如果“-”部分不应该在那里,那么就删除它。这对我来说非常有效,但是为什么要在行的末尾包含
空格-
?我只是在镜像原始代码中的内容,但是如果不应该有“-”部分,那么就删除它。