PowerShell:从文件夹中选择具有特定名称的文件,并通过添加当前日期对其进行重命名

时间:2015-07-02 09:01:14

标签: date powershell file-rename

如果我的问题看起来太容易,我真诚地道歉。我是PowerShell的新手,我还在学习基础知识。

我有一个文件夹E:\LastMonthBackup

SQL Server每天添加一个名为ProjectBackup.bak的新文件

我需要一个PowerShell脚本,可以通过在创建文件时添加日期来重命名这个新添加的文件。

所以从本质上讲,我希望每个新文件都被命名为ProjectBackup_Year_Month_Day.bak

我不希望脚本触及已在其名称中包含日期的文件。只应重命名这个新的ProjectBackup.bak文件。

你能帮我写这样的剧本吗?

我发现了一个相关的问题here,但是当我尝试在我的脚本中应用解决方案时,它无效或者我只是弄乱了一些东西。我是PowerShell的新手,所以任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

如果只想将一个文件重命名为您的模式,可以尝试这样做:

$fileToRename = "E:\LastMonthBackup\ProjectBackup.bak"
if (Test-Path $fileToRename)
{
    $fileName = [system.io.path]::GetFileNameWithoutExtension($fileToRename)
    $dateSuffix = get-date -Format 'yyyy_MM_dd'
    $fileExtension = [system.io.path]::GetExtension($fileToRename)
    $newFileName = '{0}_{1}{2}' -f $fileName, $dateSuffix, $fileExtension
    Rename-Item -Path $fileToRename -NewName $newFileName
}

如果文件$fileToRename存在,脚本将确定文件名ProjectBackup,格式为yyyy_MM_dd的日期和文件扩展名.bak并格式化新字符串。最后,它将文件重命名为新名称。