gpt4 book ai didi

powershell - 在 PowerShell 中连接或使用 heredoc 时保留换行符

转载 作者:行者123 更新时间:2023-12-04 01:49:35 25 4
gpt4 key购买 nike

假设我有一个文档 c:\temp\temp.txt有内容

line 1
line 2

我创建了以下函数
PS>function wrapit($text) {
@"
---Start---
$text
---End---
"@
}

然后运行 ​​ PS> wrapit((Get-Content c:\temp\temp.txt))
会输出
---Start---
line 1 line 2
---End---

如何保留换行符?附加与插值无济于事。

I found this related question ,但在这里他们使用的是字符串数组。我正在使用一个包含换行符的单个字符串(如果您直接从函数内部输出字符串而不连接,并且 $text | gm 确认我正在使用字符串,而不是数组,则可以看到它们)。我可以做世界上所有的字符串解析来将它敲入到位,但这似乎是我在圆孔中敲打方钉。我缺少的概念是什么?

最佳答案

做你想做的一个简单的方法是:

wrapit((Get-Content c:\temp\temp.txt | out-string))

现在解释一下:Here-strings @""就像字符串 ""一样,结果是由于变量扩展中的 PowerShell 行为。你试一试:
$a = Get-Content c:\temp\temp.txt
"$a"

关于你的评论:
$a | Get-Member
TypeName: System.String
...


Get-Member -InputObject $a
TypeName: System.Object[]
...

第一个答案是好的(它接收字符串)。它只是不会每次都重复 System.string。在第二个中,它接收一个数组作为参数。

关于powershell - 在 PowerShell 中连接或使用 heredoc 时保留换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13355534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com