我想重命名遵循相同命名约定的多个文件,唯一的变化是名称末尾的日期。
例如TRADARCASHROLLUP.GRPTIRHK.01052017.CSV
我希望文件的新名称以日期开头01052017.TRADARCASHROLLUP.GRPTIRHK.CSV
希望有人可以帮我写一个批处理脚本来实现这个目标。我已经看到了其他答案,但未能将它们应用于此。
我尝试过使用以下内容:
ls | %{ "C:\UBSTesting\Incoming\TRADARCASHROLLUP.GRPTIRHK*" $_.name ($_.name
-replace '^(\w+).(\w+).(\w+)', '$3.$1.$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!
)
)