通过重新排列原始文件名重命名多个文件

时间:2017-11-20 12:43:10

标签: powershell batch-file

我想重命名遵循相同命名约定的多个文件,唯一的变化是名称末尾的日期。

例如TRADARCASHROLLUP.GRPTIRHK.01052017.CSV我希望文件的新名称以日期开头01052017.TRADARCASHROLLUP.GRPTIRHK.CSV

希望有人可以帮我写一个批处理脚本来实现这个目标。我已经看到了其他答案,但未能将它们应用于此。

我尝试过使用以下内容:

ls | %{ "C:\UBSTesting\Incoming\TRADARCASHROLLUP.GRPTIRHK*" $_.name ($_.name 
-replace '^(\w+).(\w+).(\w+)', '$3.$1.$2')}

2 个答案:

答案 0 :(得分:2)

尝试使用此代码:

Get-ChildItem -Path 'C:\temp' | ForEach-Object {
    $newName = $_.Name -replace '(.+).(\d{8})', '$2.$1'
    Rename-Item $_ -NewName $newName
}

答案 1 :(得分:1)

因为您还标记了它batch-file

@echo off
setlocal enabledelayedexpansion
for %%a in (*.*.*.csv) do (
  for %%b in (%%~na) do (
    set new=%%~xb.%%~nb%%~xa
    ECHO !new:~1!
  )
)