根据当前名称

时间:2015-11-26 09:56:33

标签: powershell batch-file automation file-rename batch-rename

一个推测性的问题,我有几个文件需要每天重命名。我想知道是否可以使用.bat或其他简单的脚本自动将它们重命名为所需的规范。

示例文件名是: OKS-SABB MT940 MT940-OKS2015-11-26-09.38.18.502511.940

需要改变的是: OKS-SABB [日期-1天] .940

所以:OKS-SABB 2015-11-25.940如果今天是26日。

文件名全部符合该格式,但它们具有不同的前缀。 e.g

OKA -SABB MT940 MT940-OKS2015-11-26-09.38.18.502511.940

OKB -SABB MT940 MT940-OKS2015-11-26-09.38.18.502511.940

OKS -SABB MT940 MT940-OKS2015-11-26-09.38.18.502511.940

需要在名称更改中维护前缀。

现在,这是可能/可行的吗?如果是,我将如何进行表演?

感谢您的帮助,

1 个答案:

答案 0 :(得分:3)

这应该做的工作。 通常情况下,我们不会为那些不亲自尝试任何事情的人编写代码。但是我有一个美好的一天,为什么不呢。

$Path = "C:\Install\test"
$Date = ((Get-Date).AddDays("-1").ToString('yyyy-MM-dd'))
$Files = gci $Path -Filter *.940 | ForEach {
    $Prefix = $_.Name.Split('-')[0]
    Rename-Item -Path $_.FullName -NewName "$Prefix-SABB-$Date.940"
}

只需将其复制到一个文本文件中,然后将其保存为RenameFiles.ps1,然后根据您的需要制作计划任务。

$Path变量的值更改为路径。