从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

要从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'} | 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"