Powershell 命令删除“#”(在文件夹和子文件夹中)

Powershell 命令删除“#”(在文件夹和子文件夹中)

根据主题:

批处理脚本从文件名中删除#(仅在特定目录中)

有没有一种快速扩展 powershell 命令的方法(来自 @Peter Hahndorf 的回答)以使其在子文件夹上工作?或者如何做到?(使用 powershell)。

提前致谢!

答案1

批量解决方案,更改路径以适合您的环境。

@Echo off
for /f "delims=" %%A in ('Dir /B/S "X:\path\to\start\*#*" 2^>Nul') do (
    set "fn=%%~nxA"
    Call ren "%%A" "%%fn:#=%%"
)

PowerShell 单行程序不需要 ForEach,因为它Rename-Item接受管道输入:

Get-ChildItem '*#*' -File -Recurse | Rename-Item -NewName {$_.Name -Replace '#'}

相关内容