问题描述
您好,我需要重命名具有多个数组的文件。 我的原始文件夹中有很多这种格式的文件。 这是示例文件。
20200909071608_11WWR3DT601_AE.job
20200909071608_11WWR3DT601_S1.job
-
我需要映射crm和每个crm的优先级值。
任何人都可以帮助我。谢谢。
$PathOperationalJob = "D:\Process"
$PathOriginalJob = "D:\Initial"
$SWPOfile = @("11WWR3DT601_AE","11WWR3DT601_S1")
$CRM = @("AE","S1")
$SSID = "8537"
$JobSequenceAgent = "D:\Service\Sequence.XML"
[System.Xml.XmlDocument] $JobSequence = New-Object System.Xml.XmlDocument
$JobSequenceFilePath = Resolve-Path ($JobSequenceAgent) -ErrorAction Stop
$JobSequence.Load($JobSequenceFilePath)
$Date = (Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmss')
# Mapping SSID
foreach ($c in $CRM)
{
$QuerySSID = $JobSequence.assign.define.systemid | Where-Object {$_.value -like "*$SSID*"} |
Select-Object -ExpandProperty description | Where-Object {$_.crm -like "*$c*"} | Select-Object -ExpandProperty priority
Write-Host "priority: $c $QuerySSID"
copy-Item -Path $PathOriginalJob\*$SWPOfile*.job $PathOperationalJob\11WWR3DT601 -ErrorAction Stop
$SWPOfile | ForEach-Object {
copy-Item -Path $PathOriginalJob\*$_*.job $PathOperationalJob\18WWR3DT601 -ErrorAction Stop
$GetAddJob = Get-ChildItem -Path $PathOperationalJob\11WWR3DT601\*$_*.job |
Rename-Item -NewName {"$QuerySSID`_$Date`_" + $_.Name.Replace('.job','.que')}
}
}
解决方法
T-Me是正确的,您不能将数组放在这样的通配符中。它不会展开数组并复制文件名中带有这些字符串的文件。您应该这样将它放在ForEach循环中:
Rename-Item
这也使您避免不必使用复制文件的class DemoApp(MDApp):
def _press(self,*dt):
print(self.root.get_screen("scr2").ids.hasta.text)
def _doThis(self,*dt):
print(self.root.get_screen("scr2").ids.hasta.text)
命令。