Powershell 批量重命名-请重试

Powershell 批量重命名-请重试,powershell,powershell-4.0,Powershell,Powershell 4.0,我正在帮助一家慈善机构解决一些IT问题。其中一部分是整理他们的文件和工作。我试图脚本一些重命名没有太多的运气 他们有很多视频博客、音频文件和word类型的文档,所有这些都有不好的文件名。这个老人和他的狗很糟糕 有很多是以“i”“a”等开头的。我现在已经根据文件类型分类到了文件夹中。但仍然希望更新文件名,使其更像 老人和他的狗 你能帮我一点忙吗?我对Powershell还是新手,在工作中学习 我已经能够删除文件名的第一部分,但不知道如何将其添加到文件名的末尾 Get ChildItem The*.

我正在帮助一家慈善机构解决一些IT问题。其中一部分是整理他们的文件和工作。我试图脚本一些重命名没有太多的运气

他们有很多视频博客、音频文件和word类型的文档,所有这些都有不好的文件名。这个老人和他的狗很糟糕

有很多是以“i”“a”等开头的。我现在已经根据文件类型分类到了文件夹中。但仍然希望更新文件名,使其更像

老人和他的狗

你能帮我一点忙吗?我对Powershell还是新手,在工作中学习

我已经能够删除文件名的第一部分,但不知道如何将其添加到文件名的末尾

Get ChildItem The*.Rename Item-NewName{$\.name-replace“The”,'}

我需要搜索所有子文件夹,找到所有以“The”开头的文件和文件夹

所以之前:-老人和他的狗

并将文件保存在该文件夹中


并将其重命名为Old Man and His Dog(The).mp4

您可以将文件名开头应删除的不同单词组合在一起,并将其放在名称末尾的括号中,如下所示:

# create an array of words that start the file name and should be moved towards the back
$words = 'The', 'i', 'a'

# create a regex pattern where all possible words are separated by the regex OR (|) sign
$re = '^({0})[ ,]+' -f ($words -join '|')

Get-ChildItem -Path 'D:\' -File | Where-Object { $_.Name -match $re } | ForEach-Object {
    $newName = '{0} ({1}){2}' -f ($_.BaseName -replace $re), $matches[1], $_.Extension
    $_ | Rename-Item -NewName $newName -WhatIf
}
示例输出


如果控制台输出看起来正常,请移除
-WhatIf
开关

$\uuU4.Name-替换“^(the)(.*)(\.....]*)$”、“$2($1)$3”干杯-谢谢-这看起来很像我想要的东西。这也适用于文件夹吗?@daffyduck是的,当然。在这种情况下,只需删除
-File
参数即可。这样,
Get ChildItem
返回所有DirectoryInfo对象以及名称与
$re
dude中的条件匹配的FileInfo对象,真是太酷了!我现在看到并理解了更多。我能再麻烦你一次吗?!在你的建议中,我看不出如何强制在文件夹中检查,它将在根文件夹D:\上工作,但我已将图片移动到名为Images的文件夹中,另一个调用了Docs,因此这需要调用这些子文件夹中的文件,据我所知,这只是从根目录调用。@daffyduck cmdlet可以在
-Path
参数中获取路径数组,因此您可以使用
Get ChildItem-Path“D:\Images”,“D:\Docs”
进行搜索。如果希望检查/重命名所有子文件夹,可以保持这些文件夹的根目录不变,并向cmdlet添加一个
-Recurse
开关。不过要小心,请将
-WhatIf
开关保持在原位,以便首先测试它!英雄联盟是的,我想我会保留-什么!!!这对我来说还是一个全新的项目,所以这是一个很棒的小项目,我真的非常感谢你的指点。竖起两个大拇指!
D:\The Old Man and his dog.mp4   --> D:\Old Man and his dog (The).mp4
D:\A Nightmare on Elm Street.mp4 --> D:\Nightmare on Elm Street (A).mp4
D:\I, Robot.mkv                  --> D:\Robot (I).mkv