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
我想通过“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