如何通过 Powershell 创建附加日期的目标文件夹?

How to create destination folder with date appended to it via Powershell?

我在一个目录中有备份文件。 objective 我想要实现的是,每次我 运行 针对该目录的这块 Powershell 时,我希望它将文件移动到一个创建的文件夹中,并将今天的日期附加到它。我试过这个:

Get-ChildItem -Path 'C:\API\APIBackups' | ForEach-Object {
    Move-Item -Path $_.FullName -Destination "C:\Users\Admin\Desktop\New folder$($_.BaseName,(Get-Date).ToString("MMddyyyy"),$_.Extension)"
}

所有这一切都是将备份文件移动到“新文件夹”并将日期附加到文件本身。我希望它创建一个新文件夹,并在“新文件夹”中附加今天的日期,并将备份文件放在那里。任何帮助都会很棒。

对于一个逗号不属于,但“代码”的每个部分都需要自己的子表达式。您还在基本文件名和文件扩展名之间添加了日期,因此看起来您想要 在文件名中插入日期。相反,您可以对此进行调整。

Get-ChildItem -Path 'C:\API\APIBackups' | ForEach-Object {
    Move-Item -Path $_.FullName -Destination "C:\Users\Admin\Desktop\New folder$((Get-Date).ToString("MMddyyyy"))\"
}

除非您要重命名文件,否则不需要在路径中指定它。

重要 请注意,如果该文件夹不存在,您需要先创建它。否则,您最终会得到一个具有该名称的无扩展名文件。您可以先测试路径,如果不存在则创建,然后移动。

Get-ChildItem -Path 'C:\API\APIBackups' | ForEach-Object {
    $newfolder = "C:\Users\Admin\Desktop\New folder$((Get-Date).ToString("MMddyyyy"))\"
    if(-not(Test-Path $newfolder)){
        $null = New-Item -Path $newfolder -ItemType Directory
    }
    Move-Item -Path $_.FullName -Destination $newfolder
}

$null 用于隐藏 New-Item 默认创建的输出。

改进建议是使用 Join-Path 构建新文件夹路径