Powershell 字符串保持 CR 和 LF

Powershell String keep CR & LF

我想通过“MySql.Data.MySqlClient.MySqlConnection”在 MySQL 数据库中插入一个 Blob,它工作正常但是 Powershell 从我的变量中删除了换行符:

$configString = Get-Content config.xml 
$configString > test5.xml
$strAddConfig = "INSERT INTO config_xml(Version,ConfigXML,MD5,Comment,ClientMinVersion) VALUES('2','" + $($configString) + "','$configMD5','BLABLA','5.0.0.0')"

当我将 $configString 变量通过管道传输到文本文件中时,CR&LF 字符将保留,当我通过复制粘贴输入 blob 时也会考虑换行符。我用不同的引用组合尝试了“strAddConfig”行,但我没有成功。

感谢帮助

# Read the text content *as a single, multi-line string*, using -Raw
$configString = Get-Content -Raw config.xml

# Use an expandable here-string for better formatting.
$strAddConfig = @"
INSERT INTO config_xml(Version,ConfigXML,MD5,Comment,ClientMinVersion)
VALUES('2','$configString','$configMD5','BLABLA','5.0.0.0')
"@

你的(主要)问题是使用 Get-Content config.xml without -Raw,它存储了一个 array $configString 中的行数,当在 expandable string 中使用数组时("...",使用字符串插值),其(字符串化)元素为 space -分隔:

PS> $array = 'one', 'two'; "$array"
one two