PowerShell写入含换行符字符串到文本文件时出现尾随空格问题求助
解决PowerShell拆分字符串后写入ExifTool参数文件的尾随空格问题
问题场景
在Windows 10系统搭配PowerShell 7.x环境下,编写ExifTool的参数文件(argsfile)时,要求每行一条命令。写入文件本身没问题,但通过字符串拆分得到的内容写入后,总会出现意外的尾随空格。即使提前对拆分后的关键词执行trim()、调整字符串拼接方式都无法解决,而直接拼接非拆分来源的字符串则完全正常。
示例代码:
$entry = "keyword1,keyword2" $wordArgs = '' $keywords = $entry.split(',') # 拆分得到单个关键词数组 foreach ($keyword in $keywords) { if ($keyword -ne "") { $wordArgs += "`n-Keywords-={0}" -f $keyword.trim() # 先删除已存在的关键词 $wordArgs += "`n-Keywords+={0}" -f $keyword.trim() # 再添加关键词 } }
问题根源
补充完整写入文件的代码后排查发现,问题出在PowerShell原生的split()方法上。
解决方案
改用[regex]::split($entry, ',')方法拆分字符串,之后拼接写入的内容就不会再出现尾随空格。测试过Out-File、Add-Content命令以及多种编码格式,结果均正常。
内容的提问来源于stack exchange,提问作者Tribun
相关产品推荐
相关产品推荐

