查找替换文件名中的文本- Powershell



我需要在文件名中替换不同的字符串。是否有一种方法来修改文件名使用查找替换功能在Powershell?

我已经在。bat文件中完成了此操作,但希望在PS中完成。

你没有提供任何细节,所以这里有一个通用的例子:

$pattern = "foo"
# Getting all files that match $pattern in a folder.
# Add '-Recurse' switch to include files in subfolders.
$search_results = Get-ChildItem -Path "C:folder" `
    | Where-Object { ((! $_.PSIsContainer) -and ($_.Name -match $pattern)) } 
foreach ($file in $search_results) {
    $new_name = $file.Name -replace $pattern, "bar"
    # Remove '-WhatIf' switch to commit changes.
    Rename-Item -WhatIf -Path $file.FullName -NewName $new_name
}

请注意,$pattern将被视为正则表达式,因此如果需要捕获特殊字符,请转义它们。

最新更新