我找到了许多类似的例子,但没有这个确切的目标。我有大量的文本文件,每个文本文件都有一个相似的第一个单词(clipxx),其中每个文件中的xx是不同的数字。
我想使用文件中的第一个单词重命名每个文件。这是我使用Powershell尝试过的。我收到一个错误,无法在空值表达式上调用方法。
Get-ChildItem *.avs | ForEach-Object { Rename-Item = Get-Content ($line.Split(" "))[0] }
答案 0 :(得分:2)
我将分为三个部分:
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 }
更改要枚举的列表中的内容可能很棘手。这就是为什么我建议将其分解。
这是我在我的计算机上运行的内容...
这就是我文件中的内容...
祝你好运