如何解决Powershell 字符串保持 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
,它在 $configString
中存储了一个 array 行,并且当数组用于 expandable string ("..."
,带字符串插值)中时,其(字符串化)元素以 空格 分隔:
PS> $array = 'one','two'; "$array"
one two
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。