提问人:Ahmet.B 提问时间:7/15/2021 更新时间:7/15/2021 访问量:94
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 变量通过管道传递到 Textfile 中时,CR&LF 字符将保留,当我通过复制粘贴输入 blob 时,也会考虑换行符。我尝试了具有不同报价组合的“strAddConfig”行,但没有成功。
谢谢你的帮助
答:
0赞
mklement0
7/15/2021
#1
# 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')
"@
您的(主要)问题是使用了 without ,它存储了一个行数组,当一个数组用于可扩展 字符串(带有字符串插值)时,它的(字符串化)元素是空格分隔的:Get-Content config.xml
-Raw
$configString
"..."
PS> $array = 'one', 'two'; "$array"
one two
评论
1赞
Ahmet.B
7/15/2021
非常感谢,使用 get-content -raw 它可以正常工作:)
0赞
mklement0
7/15/2021
很高兴听到它,@Ahmet.B;另请参阅我刚刚添加到答案中的解释。
上一个:MySQL查询到csv输出
评论
'$configMD5'