根据Powershell中文件的第一个单词重命名文本文件

时间:2018-06-25 17:47:11

标签: powershell

我找到了许多类似的例子,但没有这个确切的目标。我有大量的文本文件,每个文本文件都有一个相似的第一个单词(clipxx),其中每个文件中的xx是不同的数字。

我想使用文件中的第一个单词重命名每个文件。这是我使用Powershell尝试过的。我收到一个错误,无法在空值表达式上调用方法。

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

1 个答案:

答案 0 :(得分:2)

我将分为三个部分:

  1. 获取要更改的文件列表。
  2. 为每个文件创建并映射新名称。
  3. 重命名文件。

phase-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

祝你好运