我需要在文件名中替换不同的字符串。有没有办法在Powershell中使用find replace函数修改文件名?
我已经在.bat文件中完成了这项工作,但是要在PS中完成此操作。
答案 0 :(得分:2)
您没有提供任何详细信息,因此这是一个通用示例:
$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
将被视为正则表达式,因此如果需要捕获它们,请转义特殊字符。