Переименование текстовых файлов на основе первого слова в файле в Powershell - PullRequest
0 голосов
/ 25 июня 2018

Я нашел много похожих примеров, но не эту точную цель.У меня есть довольно большое количество текстовых файлов, у которых у всех одинаковое первое слово (clipxx), где xx - это разное число в каждом файле.

Я хочу переименовать каждый файл, используя первое слово в файле.Вот что я пробовал использовать Powershell.Я получаю сообщение об ошибке, что не могу вызвать метод для выражения с нулевым значением.

Get-ChildItem *.avs | ForEach-Object { Rename-Item = Get-Content ($line.Split(" "))[0] }

1 Ответ

0 голосов
/ 25 июня 2018

Я бы сделал это в трех частях:

  1. Получить список файлов, которые вы хотите изменить.
  2. Создайте и сопоставьте новое имя для каждого файла.
  3. Переименуйте файлы.

фаза-1: получите список файлов, которые вы хотите изменить.

$files = Get-ChildItem *.avs

фаза-2: сопоставить имя файла с новым именем

$file_map = @()
foreach ($file in $files) {
    $file_map += @{
        OldName = $file.Fullname
        NewName = "{0}.avs" -f $(Get-Content $file.Fullname| select -First 1)
    }
}

фаза-3: изменить имя

$file_map | % { Rename-Item -Path $_.OldName -NewName $_.NewName }

Изменение вещи всписок, который вы перечисляете, может быть сложным.Вот почему я рекомендую разбить это.

Вот я запускаю это на моей машине ...

enter image description here

И вотчто было в моих файлах ...

enter image description here

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...