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

如何在目录中的最后一个文件之后结束powershell脚本,powershell,Powershell,运行Powershell脚本以在所有文件名前添加字母M。然后在修改最后一个文件后继续循环,并在循环中在文件名前面添加更多MMM。我需要它在第一次运行完目录中的所有文件后停止 我试过这三种版本。第一个在M前面有空格的文件将重命名所有文件一次,但在名称前面保留额外的空格,如果我能去掉空格,这将是我所需要的: DIR | Rename-Item -NewName {" M" + $_.BaseName + $_.Extension} 此版本在M前面没有额外的空间,但只要文件名允许更多字符,就会继续添

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

我试过这三种版本。第一个在M前面有空格的文件将重命名所有文件一次,但在名称前面保留额外的空格,如果我能去掉空格,这将是我所需要的:

DIR | Rename-Item -NewName {" M" + $_.BaseName + $_.Extension}
此版本在M前面没有额外的空间,但只要文件名允许更多字符,就会继续添加MMMMs

DIR | Rename-Item -NewName {"M" + $_.BaseName + $_.Extension}
我还尝试将字母作为参数并使用Foreach,得到了与前两个版本中字母M相同的结果:

$AL = "M"
Foreach-Object {
    DIR | Rename-Item -NewName {$AL + $_.BaseName + $_.Extension}
}
我需要重命名的文件名称前有一个M,一次,没有额外的空间。多谢各位

$FileList = Get-ChildItem
$FileList | Rename-Item -NewName {"M" + $_.BaseName + $_.Extension}
我们应该做到这一点。这和你的原创之间的区别是你的原创得到了一个动态的文件列表;通过将文件列表存储在变量中,它将变为静态的,这样就不会将已重命名的文件添加到要处理的列表中


我们应该做到这一点。这和你的原创之间的区别是你的原创得到了一个动态的文件列表;通过将文件列表存储在变量中,它将变为静态的,这样就不会将已重命名的文件添加到要处理的列表中。

因此,如果
M
已经是第一个字符,则要将
M
添加到文件名的开头,除非
M
已经是第一个字符?请尝试:
DIR | ForEach对象{Rename Item-NewName('M'+$.BaseName+$.Extension)}
@iRon-你的建议对我不起作用;虽然我怀疑它会和艾琳达最初的尝试有同样的问题,但它没有;相反,它只是停止并提示我输入必需的参数
Path
重命名项
DIR | ForEach对象{Rename Item-Path$\ NewName('M'+$\ BaseName++$\扩展名)}
确实有效。@iRon-但是,我应该注意,在您的解决方案和我的解决方案的更正版本中,
$\ BaseName+$\扩展名
表达式可以替换为
$\ BaseName
,因此,除非
M
已经是文件名的第一个字符,否则您想将
M
添加到文件名的开头?请尝试:
DIR | ForEach对象{Rename Item-NewName('M'+$.BaseName+$.Extension)}
@iRon-您的建议对我不起作用;虽然我怀疑它会和艾琳达最初的尝试有同样的问题,但它没有;相反,它只是停止并提示我输入必需的参数
Path
重命名项
DIR | ForEach对象{Rename Item-Path$\ NewName('M'+$\ BaseName++$\扩展名)}
确实有效。@iRon-但是,我应该注意,在您的解决方案和我的解决方案的更正版本中,
$\ BaseName+$\扩展名
表达式可以替换为
$\ BaseName