使用 Import-Csv 重命名各个文件夹中的特定文件
Renaming Specific Files in various folders with Import-Csv
我正在尝试重命名位于多个文件夹中的一堆文件。文件名不是唯一的,因为它们存在于多个目录中。因此,我想根据路径获取所有特定文件,然后使用 Rename-Item cmdlet 使它们独一无二。
我正在使用 Import-Csv cmdlet,因为我在文本文件中有路径和新文件名(headers 分别是 oldPath 和 NewFileName)。
到目前为止我已经知道了:
$documentList = @(Import-Csv -Path 'C:\Users\Desktop\testFolder\fileWithPathAndNewFileName.txt')
$Paths = (ForEach-Object {
(Gci -Path $documentList.oldPath)
})
$Paths | ForEach-Object {Rename-Item -Path $_.FullName -NewName "$($documentlist.newFileName)"}
不幸的是,这并没有真正奏效,但感觉就差不多了。我认为我搞砸的地方是 -NewName 参数。我只是不确定如何从我的文本文件中正确填充 NewFileName object。任何帮助将非常感激。如果这看起来有些微不足道,我提前道歉,不幸的是我与我的 Powershell 不一致。
您的代码有点混乱。 ;-) ... 如果您有 CSV 文件,您应该将其命名为 *.csv。
如果我猜对了,实际上这应该足够了:
$documentList = Import-Csv -Path 'C:\Users\Desktop\testFolder\fileWithPathAndNewFileName.txt'
foreach ($document in $documentList) {
Rename-Item -Path $document.oldPath -NewName $document.NewFileName
}
您遍历 CSV 文件中的每一行,并将单元格中的值用作 Rename-Item
cmdlet 的输入。您需要具有完整路径,包括 "oldPath" 列中文件的文件名和 "NewName"
列中的新名称
我正在尝试重命名位于多个文件夹中的一堆文件。文件名不是唯一的,因为它们存在于多个目录中。因此,我想根据路径获取所有特定文件,然后使用 Rename-Item cmdlet 使它们独一无二。
我正在使用 Import-Csv cmdlet,因为我在文本文件中有路径和新文件名(headers 分别是 oldPath 和 NewFileName)。
到目前为止我已经知道了:
$documentList = @(Import-Csv -Path 'C:\Users\Desktop\testFolder\fileWithPathAndNewFileName.txt')
$Paths = (ForEach-Object {
(Gci -Path $documentList.oldPath)
})
$Paths | ForEach-Object {Rename-Item -Path $_.FullName -NewName "$($documentlist.newFileName)"}
不幸的是,这并没有真正奏效,但感觉就差不多了。我认为我搞砸的地方是 -NewName 参数。我只是不确定如何从我的文本文件中正确填充 NewFileName object。任何帮助将非常感激。如果这看起来有些微不足道,我提前道歉,不幸的是我与我的 Powershell 不一致。
您的代码有点混乱。 ;-) ... 如果您有 CSV 文件,您应该将其命名为 *.csv。 如果我猜对了,实际上这应该足够了:
$documentList = Import-Csv -Path 'C:\Users\Desktop\testFolder\fileWithPathAndNewFileName.txt'
foreach ($document in $documentList) {
Rename-Item -Path $document.oldPath -NewName $document.NewFileName
}
您遍历 CSV 文件中的每一行,并将单元格中的值用作 Rename-Item
cmdlet 的输入。您需要具有完整路径,包括 "oldPath" 列中文件的文件名和 "NewName"