如何在目录中的最后一个文件之后结束Powershell脚本

时间:2019-07-05 15:22:21

标签: powershell

Powershell脚本运行以在所有文件名之前添加字母M。然后,在修改完最后一个文件后,它将继续循环,并在文件名之前循环添加更多MMMM。我需要在第一次运行Directory中的所有文件后停止它。

我尝试了这三个版本。第一个在M前面有空格的文件会重命名所有文件一次,但会在名称前保留多余的空间,如果我可以摆脱空间,那将是我所需要的:

DIR | Rename-Item -NewName {" M" + $_.BaseName + $_.Extension}

此版本在M的前面没有多余的空间,但是会在文件名允许更多字符的情况下继续添加MMMM。

DIR | Rename-Item -NewName {"M" + $_.BaseName + $_.Extension}

我还尝试将字母作为参数并使用Foreach并获得与前两个版本中的字母M相同的结果:

$AL = "M"
Foreach-Object {
    DIR | Rename-Item -NewName {$AL + $_.BaseName + $_.Extension}
}

我需要一次在文件名前加M的文件名,并且一次没有多余的空间。谢谢。

1 个答案:

答案 0 :(得分:2)

$FileList = Get-ChildItem
$FileList | Rename-Item -NewName {"M" + $_.BaseName + $_.Extension}

应该做到这一点。此文件与原始文件的区别在于原始文件会获得动态文件列表;通过将文件列表存储在变量中,该文件列表将变为静态,因此不会将已经重命名的文件添加到要处理的列表中。