【发布时间】:2019-12-17 21:42:32
【问题描述】:
我需要以分钟为单位将文件从网络驱动器复制到本地驱动器。复制完成后,我需要按照以下要求修改文件名:
示例文件名:
Ser1-PRD-CL4$Entreprise_AG2_MyCompany-NA_DB_Name_02_LOG_20191217_094501.trn
- 从网络目录复制 35 分钟前创建的所有文件,例如\Server\本地目录的路径 D:\NameofDB (我能够实现复制部分,但想知道是否应该放置任何标志以防止再次复制相同的文件,复制的文件将修改其名称,因此不确定我们如何跟踪)
-
一旦复制,修改所有复制文件的名称如下:
一个。删除单词“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 '^MyCompany'} #This is not working
【问题讨论】:
标签: powershell filenames