从PowerShell脚本创建XML输出文件的步骤
要从PowerShell脚本创建以下XML输出:从PowerShell脚本创建XML输出文件的步骤,xml,powershell,powershell-2.0,Xml,Powershell,Powershell 2.0,要从PowerShell脚本创建以下XML输出: 20181231 20180531 20180531 资金 值1是本年度的结束日期。值2和值3是本月的结束日期。如何从PowerShell脚本创建上述XML?好的,下面是如何加载和保存XML: [xml]$xml = get-content file.xml $xml.save('file.xml') 还有一个converttoxml命令: $xml = [pscustomobject]@{Value1='20181231'} | Conv
20181231
20180531
20180531
资金
值1是本年度的结束日期。值2和值3是本月的结束日期。如何从PowerShell脚本创建上述XML?好的,下面是如何加载和保存XML:
[xml]$xml = get-content file.xml
$xml.save('file.xml')
还有一个converttoxml命令:
$xml = [pscustomobject]@{Value1='20181231'} | ConvertTo-Xml -NoTypeInformation
$xml.save('file.xml')
get-content file.xml
<?xml version="1.0" encoding="utf-8"?>
<Objects>
<Object>
<Property Name="Value1">20181231</Property>
</Object>
</Objects>
$xml=[pscustomobject]@{Value1='20181231'}转换为xml-非类型信息
$xml.save('file.xml')
获取content file.xml
20181231
但这并不是那么简单。这里有一个使用XElement的解决方案:
## Q:\Test\2019\05\21\SO_56237520.ps1
$ThisYearEndDate = (Get-Date -Month 1 -Day 1).AddYears(1).AddDays(-1).ToString('yyyyMMdd')
$ThisMonthEndDate= (Get-Date -Day 1).AddMonths(1).AddDays(-1).ToString('yyyyMMdd')
$File = '.\Sample.xml'
@"
<Trigger>
<Value1>$ThisYearEndDate</Value1>
<value2>$ThisMonthEndDate</value2>
<value3>$ThisMonthEndDate</value3>
<value4>FINANCE</value4>
<value5 />
<value6 />
</Trigger>
"@ | Set-Content $File -Encoding UTF8
$XML = [XML](Get-Content $File)
$XML.Trigger
using namespace system.xml.linq
$CurrentDate = Get-Date
$YearEnd = Get-Date -Year $CurrentDate.Year -Month 12 -Day 31 -Format yyyyMMdd
$MonthEnd = Get-Date -Year $CurrentDate.Year -Month $CurrentDate.Month -Day ([datetime]::DaysInMonth($CurrentDate.Year,$CurrentDate.Month)) -Format yyyyMMdd
$x = [xelement]::new("Trigger",
[xelement]::new("Value1",$YearEnd),
[xelement]::new("Value2",$MonthEnd),
[xelement]::new("Value3",$MonthEnd),
[xelement]::new("Value4","FINANCE"),
[xelement]::new("Value5",""),
[xelement]::new("Value6",""))
$x.tostring() | Set-Content -Path "x.xml"
这会将XML结构输出到当前目录中的文件x.XML。您尝试了什么?有什么作品要展示吗?你到底被困在什么地方?堆栈溢出不是代码编写服务。如果您需要学习如何编写代码或排除故障的帮助,那么这就是您的地方。如果您需要从头开始编写代码,那么您应该雇佣一名开发人员。并将它们插入到您写入的文件中。如果xml是有效的,则会有所帮助。
using namespace system.xml.linq
$CurrentDate = Get-Date
$YearEnd = Get-Date -Year $CurrentDate.Year -Month 12 -Day 31 -Format yyyyMMdd
$MonthEnd = Get-Date -Year $CurrentDate.Year -Month $CurrentDate.Month -Day ([datetime]::DaysInMonth($CurrentDate.Year,$CurrentDate.Month)) -Format yyyyMMdd
$x = [xelement]::new("Trigger",
[xelement]::new("Value1",$YearEnd),
[xelement]::new("Value2",$MonthEnd),
[xelement]::new("Value3",$MonthEnd),
[xelement]::new("Value4","FINANCE"),
[xelement]::new("Value5",""),
[xelement]::new("Value6",""))
$x.tostring() | Set-Content -Path "x.xml"