0

我有什么应该是一个简单的问题,但我似乎无法正确解决。我有一个文件有两个文件扩展名。我们检索文件,对其进行解密并将加密文件保存到备份文件夹中,并带有显示文件处理时间的日期/时间戳。我想要做的就是将日期/时间戳放在两个扩展之前而不是它们之间。必须有一个简单的单行答案,但我找不到。有什么建议么?

原始文件名 - DAILY AP FILES.ZIP.pgp

当前重命名文件名 - DAILY_AP_FILES.ZIP-02182013-155123.pgp

所需的重命名文件名 - DAILY_AP_FILES-02182013-155123.pgp

Get-ChildItem "$dlpath\*.pgp" | ForEach-Object {          
    Move-Item $_.FullName "$BackupFolder$($_.BaseName.Replace(" ", "_"))-$(Get-Date -Format "MMddyyyy-HHmmss").pgp"
}
4

3 回答 3

4

试试这个:

Get-ChildItem "$dlpath\*.pgp" | ForEach-Object {          
    Move-Item $_.FullName "$BackupFolder$($_.BaseName -replace " ", "_" -replace '\.([^\.]+)$')-$(Get-Date -Format "MMddyyyy-HHmmss").pgp"
}
于 2013-02-18T21:14:30.303 回答
0

这对你有用吗?

Get-ChildItem "$dlpath\*.pgp" | ForEach-Object {
$NewBaseName = ($_.BaseName.Replace(" ", "_")) -replace '^(.+\.).+','$1'           
Move-Item $_.FullName "$BackupFolder$NewBaseName-$(Get-Date -Format "MMddyyyy-HHmmss").pgp"
}
于 2013-02-18T21:21:56.693 回答
0

试试这个修改,改进,因为按日期排序

$source_path="D:\Transferencia"
$backup_folder="D:\Transferencia_Backup"

Get-ChildItem "$source_path\*.pgp" | ForEach-Object {          
   Move-Item $_.FullName "$backup_folder\$($_.BaseName -replace " ", "_")-$(Get-Date -Format "yyyyyMMdd_HHmmss").pgp"
}
于 2017-09-22T16:55:39.260 回答