Powershell Echo语句+;一行中的变量

Powershell Echo语句+;一行中的变量,powershell,echo,Powershell,Echo,我正在运行一个脚本,我希望它在最后[成功时]打印一个“语句+变量+语句”。我尝试了一些方法,但它总是以三行而不是一行的形式返回。前后的回音“”只是为了让打印时更容易阅读,将其隔开,我尝试了有无回音,得到了相同的结果 $filename = "foo.csv" echo "" echo "The file" $filename "has been processed." echo "" 我明白了: The file foo.csv has been processed.

我正在运行一个脚本,我希望它在最后[成功时]打印一个“语句+变量+语句”。我尝试了一些方法,但它总是以三行而不是一行的形式返回。前后的回音“”只是为了让打印时更容易阅读,将其隔开,我尝试了有无回音,得到了相同的结果

$filename = "foo.csv"

    echo ""
    echo "The file" $filename "has been processed."
    echo ""
我明白了:

The file
foo.csv
has been processed.

在powershell中,您可以按如下方式使用写主机:

$filename = "foo.csv"
Write-Host 'The file' $filename 'has been processed.'

-> The file foo.csv has been processed.

如果使用双引号,可以直接在字符串中引用变量,因为它们允许变量展开,而单引号不允许展开

$filename = "foo.csv"
Write-Output "The file $filename has been processed."

-> The file foo.csv has been processed.

而且,
echo
实际上只是
写入输出的别名,所以我使用了全名。

可能是如此简单的重复。我被甩了,因为它变灰了。我以为它正在转换成纯文本。谢谢。我当然建议大家阅读,这样一件小事可能会产生很大的影响:)如果$args[0]很少,它就不能正常工作-它的print it all args://@GorodeckijDimitrij是的,数组和字符串需要以不同的方式处理。当写出
对象时,
Write Host
会给出对象的类型,不是它的内容。最好使用
写入输出
请在回答中添加说明
echo ("The file "+ $filename +" has been processed.")