Powershell 在移动文件时附加日期

问题描述 投票:0回答:1

大家都是 Powershell 新手 - 非常感谢您的帮助!我有一个留给我的现有脚本,它基本上将 pdf 文件移动到同一目录中的同名文件夹中。

这太棒了 - 直到您有一个同名的 pdf 需要进入文件夹而不覆盖旧的。脚本是-

$folder = 'V:\Files'
Set-Location $folder
Get-ChildItem *.pdf | Move-Item -Destination { $_.BaseName.}

有没有一种方法可以将日期附加到 pdf 的末尾并将其移动到文件夹中,这样继续前进就不会出错?

例如,如果我有 2023 年 5 月 1 日创建的 pdf '123456789' 和 2024 年 5 月 1 日创建的 pdf '123456789',它将把它们都移动到现有文件夹 '123456789' 中,如下所示:

'123456789_05_01_2023.pdf'
'123456789_05_01_2024.pdf'

我尝试过在各种网站上查找有效的脚本,但就像我说的 - 一个新手,正在寻求一些帮助来了解如何做类似的事情。谢谢!

powershell
1个回答
0
投票

您与当前的代码非常接近,只需将

.BaseName
.CreationTime
属性
连接起来,最后连接到
.Extension
属性。要获取问题中的日期格式,您可以使用字符串格式
MM_dd_yyyy
。把所有的放在一起可能是:

$folder = 'V:\Files'
$destination = 'X:\path\to\myDestination'

Get-ChildItem -Path $folder *.pdf | Move-Item -Destination {
    Join-Path $destination -ChildPath ('{0}_{1:MM_dd_yyyy}{2}' -f $_.BaseName, $_.CreationTime, $_.Extension)
}
© www.soinside.com 2019 - 2024. All rights reserved.