Powershell 自动使用新行
Powershell automatically using new line
我的脚本有问题。
我正在从 XML- 文件中抓取路径,需要对其进行修改。
$file = [xml](Get-Content "PATH\TO\XML.xml")
$file.here.is.my.attribute | Format-Table -Wrap -AutoSize | out-file -filepath ".\PATHS.txt" -append
Powershell 正在我的路径中间插入换行符,因为它太长了(只需阅读缓冲区大小)。我试图将它保存到 .XML 文件而不是 .TXT 文件,但这对我不起作用。
任何解决方法的想法?
文件应如下所示:
Path1\Path\Path\path
Path2\Path\Path\path
Path3\Path\Path\path
但它看起来像:
Path1\Path\Path\
path
Path1\Path\Path\
path
Path1\Path\Path\
path
XML-示例:
<?xml version="1.0" encoding="utf-8"?>
<unattend>
<servicing>
<package>
<assemblyIdentity/>
<source location="HERE\IS\MY\PATH"/>
</package>
<package>
<assemblyIdentity/>
<source location="HERE\IS\ANOTHER\PATH"/>
</package>
<package>
<assemblyIdentity/>
<source location="HERE\IS\ANOTHER\PATH"/>
</package>
</servicing>
</unattend>
首先Format-Table
仅用于控制台输出。尝试将其用于除此以外的任何用途都会给您带来麻烦。鉴于你的样本 XML 你可以只使用点符号来获得所有 location
的
在您的示例中,您试图输出带有 location
属性 的对象数组。使用点符号调用属性将从输出中删除该层。
$xmlFile = [xml](Get-Content "PATH\TO\XML.xml")
$xmlFile.unattend.servicing.package.source.location | Set-Content ".\PATHS.txt"
在这种情况下,我认为您实际上不需要附加到文件。但是,如果您真的要构建更大的文件,那么在我的示例中,您可以使用 Add-Content
代替 Set-Content
。
示例输出
HERE\IS\MY\PATH
HERE\IS\ANOTHER\PATH
HERE\IS\ANOTHER\PATH
我的脚本有问题。
我正在从 XML- 文件中抓取路径,需要对其进行修改。
$file = [xml](Get-Content "PATH\TO\XML.xml")
$file.here.is.my.attribute | Format-Table -Wrap -AutoSize | out-file -filepath ".\PATHS.txt" -append
Powershell 正在我的路径中间插入换行符,因为它太长了(只需阅读缓冲区大小)。我试图将它保存到 .XML 文件而不是 .TXT 文件,但这对我不起作用。
任何解决方法的想法?
文件应如下所示:
Path1\Path\Path\path
Path2\Path\Path\path
Path3\Path\Path\path
但它看起来像:
Path1\Path\Path\
path
Path1\Path\Path\
path
Path1\Path\Path\
path
XML-示例:
<?xml version="1.0" encoding="utf-8"?>
<unattend>
<servicing>
<package>
<assemblyIdentity/>
<source location="HERE\IS\MY\PATH"/>
</package>
<package>
<assemblyIdentity/>
<source location="HERE\IS\ANOTHER\PATH"/>
</package>
<package>
<assemblyIdentity/>
<source location="HERE\IS\ANOTHER\PATH"/>
</package>
</servicing>
</unattend>
首先Format-Table
仅用于控制台输出。尝试将其用于除此以外的任何用途都会给您带来麻烦。鉴于你的样本 XML 你可以只使用点符号来获得所有 location
的
在您的示例中,您试图输出带有 location
属性 的对象数组。使用点符号调用属性将从输出中删除该层。
$xmlFile = [xml](Get-Content "PATH\TO\XML.xml")
$xmlFile.unattend.servicing.package.source.location | Set-Content ".\PATHS.txt"
在这种情况下,我认为您实际上不需要附加到文件。但是,如果您真的要构建更大的文件,那么在我的示例中,您可以使用 Add-Content
代替 Set-Content
。
示例输出
HERE\IS\MY\PATH
HERE\IS\ANOTHER\PATH
HERE\IS\ANOTHER\PATH