大规模大写的Windows 10 PowerShell文件重命名命令[重复]

sc4hvdpw  于 2022-11-26  发布在  Windows
关注(0)|答案(2)|浏览(144)

此问题在此处已有答案

Capitalize the first letter of each word in a filename with powershell(4个答案)
两年前就关门了。
我曾试图在这个网站上找到答案,但一直没有成功。
我有243个.png文件,我想大规模重命名,因为,很明显,这将是乏味的一个接一个地做。我还没有尝试任何命令或脚本,因为我不知道如何开始后,在谷歌搜索。我知道如何使用PowerShell -只是没有写我自己的命令/脚本。好吧,说了这么多,这里是我要说的。
当前文件为:
阿富汗国旗. png
阿兰群岛旗帜. png
秘鲁国旗. png
需要将它们更改为:
阿富汗国旗. png
奥兰群岛旗帜. png
秘鲁国旗. png
非常感谢您的光临。

63lcw9qa

63lcw9qa1#

使用cd命令输入目录:cd MYPATH

$names = (ls).name
foreach ($name in $names) {
    $name_split = $name.split(" ")
    $old_name = $name
    $name = ""
        foreach ($name_part in $name_split) {
            $name_part = $name_part.substring(0,1).toupper()+$name_part.substring(1).tolower()    
            $name += ($name_part + " ")
        }
    Move-Item -Path $old_name -Destination $name.substring(0,$name.length - 1)
}

这应该对你有用。很高兴你认为一些无聊的任务可以用powershell自动化。让我知道它的进展!

lzfw57am

lzfw57am2#

应该可以这样做:

$files = @('afghanistan flag.png'
 'aland islands flag.png'
 'peru flag.png')

$files | ForEach-Object {
  $parts = $_ -split " " | ForEach-Object { 
  "$($_.substring(0,1).toupper())$($_.substring(1).tolower())" }
  $newfilename = $parts -join ' '
  Write-Host "This is the new name: $newfilename"
}

输出量:

This is the new name: Afghanistan Flag.png
This is the new name: Aland Islands Flag.png
This is the new name: Peru Flag.png

相关问题