Powershell脚本在每个文件夹的第三个位置插入一个“0”

Powershell script to insert a "0" on every folders 3rd position

我已经搜索过 google 但找不到答案。

我想要一个 powershell 脚本在每个文件夹名称的每个第 3 个位置添加一个零。

结构现在看起来像这样:

10_vdvdsfadsgd
11_dsnpdnfp
12_spancfspo
20_ndsknfp
21_mpmsdpfdo

我希望它是这样的:

100_vdvdsfadsgd
110_dsnpdnfp
120_spancfspo
200_ndsknfp
210_mpmsdpfdo

您可以使用 Rename-Item 重命名文件夹,然后使用 String.Insert():

在特定索引处的名称中插入 0
Get-ChildItem path\to\root\folder -Directory |Rename-Item -NewName { $_.Name.Insert(2, "0") }

如果您只想定位具有给定名称格式的文件夹,请使用 Get-ChildItem-Filter 参数:

Get-ChildItem path\to\root\folder -Directory -Filter "??_*" |Rename-Item -NewName { $_.Name.Insert(2, "0") }

如果您将脚本中的路径更改为文件夹所在的位置,下面的脚本会更改名称以在下划线前添加一个零。

$folderspath = 'C:\Test'
$folders = gci -Path $folderspath

ForEach($folder in $folders) {
    $CurrentFolderName = $folder.name
    $CurrentFolderName = $CurrentFolderName.tostring()
    $NewFolderName = $CurrentFolderName.Replace("_","0_")
    $FolderPath = $folder.FullName
    
    Rename-Item -Path $FolderPath -NewName $NewFolderName
    
}