Powershell文件重命名日期/时间

Powershell文件重命名日期/时间,powershell,Powershell,我有一个应该很简单的问题,但我就是不能把它弄对。我有一个有两个文件扩展名的文件。我们检索文件,对其进行解密,并将加密文件保存到备份文件夹中,该文件夹带有日期/时间戳,显示处理文件的时间。我想做的就是把日期/时间戳放在两个扩展之前,而不是放在它们之间。必须有一个简单的一行答案,但我找不到。有什么建议吗 原始文件名-DAILY AP FILES.ZIP.pgp 当前重命名文件名-DAILY_AP_FILES.ZIP-02182013-155123.pgp 所需重命名文件名-DAILY_AP_FILE

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

原始文件名-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"
}
试试这个:

Get-ChildItem "$dlpath\*.pgp" | ForEach-Object {          
    Move-Item $_.FullName "$BackupFolder$($_.BaseName -replace " ", "_" -replace '\.([^\.]+)$')-$(Get-Date -Format "MMddyyyy-HHmmss").pgp"
}
试试这个:

Get-ChildItem "$dlpath\*.pgp" | ForEach-Object {          
    Move-Item $_.FullName "$BackupFolder$($_.BaseName -replace " ", "_" -replace '\.([^\.]+)$')-$(Get-Date -Format "MMddyyyy-HHmmss").pgp"
}

这对你有用吗

Get-ChildItem "$dlpath\*.pgp" | ForEach-Object {
$NewBaseName = ($_.BaseName.Replace(" ", "_")) -replace '^(.+\.).+','$1'           
Move-Item $_.FullName "$BackupFolder$NewBaseName-$(Get-Date -Format "MMddyyyy-HHmmss").pgp"
}

这对你有用吗

Get-ChildItem "$dlpath\*.pgp" | ForEach-Object {
$NewBaseName = ($_.BaseName.Replace(" ", "_")) -replace '^(.+\.).+','$1'           
Move-Item $_.FullName "$BackupFolder$NewBaseName-$(Get-Date -Format "MMddyyyy-HHmmss").pgp"
}

尝试此修改,由于按日期排序而有所改进

$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"
}

尝试此修改,由于按日期排序而有所改进

$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"
}

比我快。不过,我会使用
\.*?$
替换第二个扩展名。更容易看上眼睛对。我只是想确保它不会删除名称的某些部分,如果它还包含
。在我变得更加活跃之后,我意识到人们使用了很多奇怪的文件名:PWorked Perfect!非常感谢。我知道必须有一个简单的方法来做到这一点。快来吧。不过,我会使用
\.*?$
替换第二个扩展名。更容易看上眼睛对。我只是想确保它不会删除名称的某些部分,如果它还包含
。在我变得更加活跃之后,我意识到人们使用了很多奇怪的文件名:PWorked Perfect!非常感谢。我知道必须有一个简单的方法来做到这一点。