[英]Powershell Set-Content seems to corrupt my SSIS .dtsx files
我已经构建了一个简单的Powershell脚本,该脚本使用get-content / set-content替换了dtsx文件中的xml路径配置。
(Get-Content $file.PSPath) | ForEach-Object {$_ -replace $searchtext , $replacetext} | Set-Content $file.PSPath
当我使用它并尝试从SQL Server代理作业运行程序包时,出现错误消息:
"Unable to load the package as XML because of package does not have a valid XML format."
如果我自己用sublime编辑文件并且不使用脚本就可以了。
替换正在进行中,我使用kdiff比较文件,没有差异。
有任何想法吗?
设置内容默认为ASCII编码。 我想知道文件是否为带有BOM的UTF8。 尝试使用Set-Content $file.PSPath -Enc Utf8
。 也许是Unicode,在这种情况下,请使用-Encoding Unicode
。
FWIW这些类型的问题是为什么我将编辑文件添加到PowerShell Community Extensions的原因 。 使用它可以编辑文件,如下所示:
Edit-File $file.PSPath $searchText $replacementText
并且它处理保留文件的原始编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.