如何使用PowerShell在文件名中顺序添加数字?

问题描述

我想在文件名中添加一个序列号。我尝试创建文件,但仍然无法弄清楚如何在文件名中添加序列号。 这是我的代码

$Seq_0 = @("AE","PR")
$Seq_1 = @("A1","AP","AS","E1")
$Seq_2 = @("E2","JP","M1")
$Seq_3 = @("M2","N1")

$PathPOFiles = ".\PO"
$BID = "00YYR3TT101"
$PathHome = "D:\Folder"
$PathOriJob = ".\Job"
$JobType = "XY"
$Prefix = "AB"

if (Test-Path -Path "$PathPOFiles\*$BID*")
{   
     Get-ChildItem -Path "$PathPOFiles\*$BID*" | ForEach-Object {

          $GetPO = Get-childItem -Path "$PathPOFiles\*$BID*"
     }
     

     # Create job content
     $POfile = Get-ChildItem -Name "$PathPOFiles\*$BID*"
     $POContent = Get-Content -path "$PathPOFiles\*$BID*"
     
     $GetCRM = $POContent | Where-Object {$_ -like "*;CRM*"}
     $CRM = $GetCRM.Substring(5,2)
     $CRM = $CRM.split()

     $POCountry = Get-ChildItem -Name "$PathPOFiles\*$BID*" -File
     $GetCountry = $POCountry.Substring(15,3)
     $GetCountry = $GetCountry.split()
     
     for ( $i = 0; $i -clt $POfile.Count; $i++) {
          if ($POfile.Count -le 1)
          {
               $po = $POfile
          } 
          else {
                                   
               $po = $POfile[$i]
          }

          $xmlcrm = $CRM[$i]
          $xmlcountry = $GetCountry[$i]
          $JobCreatedTime = Get-Date
          
          # Set The Formatting
          $xmlsettings = New-Object System.Xml.XmlWriterSettings
          $xmlsettings.Indent = $true
          $xmlsettings.IndentChars = "`t"

          $XmlWriter = [System.XML.XmlWriter]::Create("$PathHome\$PathOriJob\$JobType`_$Prefix$BID`_$xmlcrm.job",$xmlsettings)
          $xmlWriter.WriteStartDocument()
          
          $xmlWriter.WriteStartElement("Job")
          
          $xmlWriter.WriteStartElement("Auto")

               $xmlWriter.WriteElementString("PO","$po")
               $xmlWriter.WriteEndElement()

          $xmlWriter.WriteStartElement("Build")
               $xmlWriter.WriteElementString("BID","$BID")
               $xmlWriter.WriteElementString("Prefix","$Prefix")
               $xmlWriter.WriteElementString("CRM","$xmlcrm")
               $xmlWriter.WriteElementString("Country","$xmlcountry")
               $xmlWriter.WriteEndElement()

          $xmlWriter.WriteEndElement()

          $xmlWriter.WriteEndDocument()
          $xmlWriter.Flush()
          $xmlWriter.Close()
     }  
     
     $Message = "Creating Job Successfully"
     Write-Host $Message
}
else {
     
     $Message = "File Not Found"
     Write-Host $Message
} 

从此代码中,我可以生成具有以下格式的文件:XY_AB00YYR3TT101_A1.job。文件的总数取决于此$POfile = Get-ChildItem -Name "$PathPOFiles\*$BID*"文件。 我的期望是,我可以根据我的命名顺序来命名文件。如果$xmlcrm等于$Seq_0列表,则文件将命名为XY_AB00YYR3TT101_AE_0.job。如果$xmlcrm等于$Seq_1,则通过添加1来命名。如果$xmlcrm与任何序列列表都不匹配,则将通过添加4作为名称来命名文件

任何人都可以帮助我。非常感谢。谢谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)