我需要根据分钟数将文件从网络驱动器复制到本地驱动器。复制完成后,我需要按照以下要求修改文件名:
样本文件名:
MyServer $ Entreprise_AG2_MyCompany-NA_DB_Name_LOG_20191217_094501.trn
复制后,如下修改所有仅复制文件的名称:
a。删除出现在单词“ MyCompany”之前的所有字符
b。删除下划线以及单词LOG“ _LOG”
c。删除日期和交易号之间的下划线(_):20191217_094501
我已经完成了从文件名中复制和删除“ _LOG”的操作,但是在其余要求上遇到了麻烦。
任何输入将不胜感激:
重要说明:目标移动中将存在其他文件,并且始终会在目标目录之前对其进行修改,因此不应修改这些文件名。
$Sourcefolder= "D:\Temp"
$Targetfolder= "D:\Temp2"
Get-ChildItem -Path $Sourcefolder -Recurse|
Where-Object {
$_.LastWriteTime -gt [datetime]::Now.AddMinutes(-60)
}| Copy-Item -Destination $Targetfolder
Get-ChildItem -Path $Targetfolder | Rename-Item -NewName {$_.Name -replace "_LOG", ""}
Get-ChildItem -Path $Targetfolder | Rename-Item -NewName {$_.Name -replace '^MyAbsorb'} #This is not working
我需要根据分钟数将文件从网络驱动器复制到本地驱动器。复制完成后,我需要按照以下要求修改文件名:示例文件名:MyServer $ ...
关于重复复制相同文件的第一个问题,请参见:Powershell script that can log already scanned files and ignore them on next run?