我试图将所有文件和目录重命名为 lower,我在这里找到了一个 powershell 脚本:在 Powershell 中将文件重命名为小写 https://stackoverflow.com/questions/3822745/rename-files-to-lowercase-in-powershell
我最喜欢的答案如下,因为它是最干净、最简洁的答案。但是,它不包括目录名称,而且我还没有足够的代表来回复评论
Get-ChildItem -r | Where-Object { !$_.PSIsContainer } | Rename-Item -NewName { $_.FullName.ToLower() }
我不了解 PowerShell,也不打算精通,请跳过所有细节我只是在寻找代码来将我的所有文件和目录重命名为 lower,我不需要知道它是如何工作的。我不喜欢下面的解决方案,因为1,它太冗长了,2,它只处理目录名而不处理文件名。
Where-Object { $_.PSIsContainer -And $_.Name -CMatch "[A-Z]" } |
ForEach-Object {
$NName = $_.Name.ToLowerInvariant()
# Set temporary name to enable rename to the same name; Windows is not case sensitive
$TempItem = Rename-Item -Path $_.FullName -NewName "x$NName" -PassThru
Rename-Item -Path $TempItem.FullName -NewName $NName
}
我想要一个干净的命令来重命名文件和目录,类似于第一个示例,请
当我第一次写这篇文章时,我只想打开 powershell 并粘贴命令。事后看来,这也不是最有效的方式。所以我最终将每个脚本(一个用于文件,一个用于文件夹)保存到一个 .ps1 文件中,您将其放入您想要降低的任何目录中,然后右键单击并“使用 powershell 运行”,它将重命名所有文件和子目录
该脚本如下所示:
# files to lower
Get-ChildItem -r | Where-Object { !$_.PSIsContainer } |
Rename-Item -NewName { $_.FullName.ToLower() }
# folders to lower
$fso = New-Object -ComObject Scripting.FileSystemObject
Get-ChildItem . -rec -dir |
ForEach-Object { $fso.MoveFolder($_.fullname, $_.Fullname.ToLower()) }