我正在尝试使用PowerShell从目录中读取文件名;然后在for循环中:使用分隔符拆分名称;在一个新变量中存储所需的输出。现在我想用这个新变量替换目录中的原始文件名。到目前为止,我已经收集了以下内容和所示的预期输出:
$files = Get-ChildItem -Path C:\Test
write-output $files
目录:C:\Test
1_N04532L_LEFT.JPG
2_N04532R_RIGHT.JPG
代码继续
foreach ($file in $files)
{
$nameArray = $file -split "_"
$newName = $nameArray[1]
write-output $newName
}
N04532L
N04532R
如何完成这一点的任何想法。我不是一个程序员,有很多关于这方面的数据,但它不适合我。
1条答案
按热度按时间dgsult0t1#
正如两位评论者已经解释过的,有Rename-Item cmdlet用于重命名文件。
由于此cmdlet可以在其
NewName
参数中使用scriptblock,因此您可以使用它来创建新文件名。您可以通过将Get-ChildItem trhough的结果逐个传送到Rename-Item cmdlet来缩短此时间。
因为我们在这里通过管道传输FileInfo对象,所以可以使用$_ automatic变量
注意:当重命名文件时,您总是会遇到命名冲突,在这种情况下,您将收到异常