Я новичок PowerShell. Я получил имена файлов в папке с помощью командлета 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 ответ1

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
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .