关键字: PowerShell, 重命名, 遍历路径
最近遇到个小问题, windows的文件名和路径名里带特殊字符"•"导致文件读取出错.
根本原因在于一些软件在处理的时候, 不认识这个"•".
那么我们的思路是, 把"•"改成"_"之类的可以识别的字符不就解决了?
???, 就这么简单?
Yes, 没错, 就是这么简单.
但是考虑到重命名的文件数量可能比较庞大, 这么简单枯燥还"巨量"的活当然交给电脑去解决啊, 只需要双击就搞定, 妈妈再也不用担心我鼠标手和颈椎病了.
涉及到"•"的话, 很多脚本语言, vbs, bat都是不能很友好的处理的.
这里我选择的是powershell, 从win7开始系统都支持哦, 也不需要担心环境问题.
具体步骤:
- 遍历路径下面的每一个元素(包括: 文件和文件夹)
- 判断名字中是否含有"•"
- 把名字中的"•"全部改成"_"
- ...已经解决拉, 快去干活吧你
代码参考:
#以脚本文件所在的目录为目标目录
$CurrentyDir = Split-Path -Parent $MyInvocation.MyCommand.Definition;
#echo $CurrentyDir
#遍历目录中所有文件
Get-ChildItem $CurrentyDir | ForEach-Object -Process{
#判断名字中是否含有"•"
if ($_.name.Contains("•")) {
#把名字中的"•"全部替换掉
$newName = $_.name -replace "•", "_";
$fulOldPath = $CurrentyDir + "\" +$_.name;
$fulNewPath = $CurrentyDir + "\" +$newName;
echo $fulOldPath;
echo $fulNewPath;
#重命名
Rename-Item -Path $fulOldPath -NewName $fulNewPath;
}
}
#友情提醒下已经完成了
$ws = New-Object -ComObject WScript.Shell
$wsr = $ws.popup("处理完成",0,"提示",1 + 64)