多个文件重命名

多个文件重命名

我是 powershell 新手。我使用 cmdlet 获取了文件夹中文件的名称Get-ChildItem

名称遵循以下方案:

video_536_640Seg1-Frag3
video_536_640Seg1-Frag4
video_536_640Seg1-Frag7

期望的输出是让文件遵循以下方案:

Frag3-video_536_640Seg1
Frag4-video_536_640Seg1

这可以通过用连字符分割每个文件名,然后切换每个分割部分的顺序来实现。

我尝试过使用-split

$items = $files -split "-"

但每个组件都被发送到不同的数组索引,并且我无法对索引进行排序。

答案1

这不是一个最佳的解决方案,但可以让您深入了解如何解决使用 Powershell 时遇到的问题(同时也提供了一个有效的答案)。您需要更新扩展以真正匹配您的视频文件。

# change below to match the file extension of the video files
$extension = ".mp4"
$files = gci *$extension

ForEach ($file in $files) {
    # get everything before "-"
    $a = ($file.BaseName).split('-')[0]

    # get everything after "-"
    $b = ($file.BaseName).split('-')[1]

    # setup the desired name format
    $fixed = $b + "-" + $a + $extension

    # rename the files
    Rename-Item $file $fixed
}

相关内容