我是靠谱客的博主 真实奇异果,最近开发中收集的这篇文章主要介绍PowerShell正则替换+批量修改文件名写在前面问题与分析具体代码及讲解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

写在前面

最近对于修改文件名有了新的需求,就是批量去掉文件名中的括号以及数字,类似这样:(1),但是数字是会随着文件的不同而递增的,这就只能用正则表达式来搞定啦。修改文件名我还是采用了PowerShell,号称Shell中处理字符串速度最快,下面来具体介绍一下操作方法。一些Powershell的函数简介可以看我的另一篇文章:《powershell一行代码批量修改文件名(附命令详解)》。

问题与分析

我先用for循环生成一些测试文件,方便下面的演示,需要用到PowerShell中的New-Item方法,代码及结果如下。
P.S. 注意,这里的生成文件名需要加上双引号,否则会报错。

for ($i=1; $i -lt 20; $i++){new-item -name "$i.txt";}

1
目标就是去掉文件名中的括号以及内部的数字,下面用正则表达式进行实现。需要注意的是,这里面不再使用.Replace()方法,而使用字符串处理的-replace参数,因为只有这个参数支持正则语法。

具体代码及讲解

还是只有一行代码,简洁明了,十分迅速????。

ls *.txt | foreach{ren $_.name ($_.name -replace '(d+)', '')}
  • 首先读取全部文件,我还是习惯使用别名进行操作,即ls,后面跟上通配符+待修改文件的后缀名,就OK了。
  • 其次是采用管道操作|,后面跟上逐元素进行操作的循环命令foreach
  • 最后就是改名啦,这里依旧使用别名ren,采用转义字符对正则中的括号进行转义,就可以完成修改啦。

注意事项

上面语句中的括号不能少,就是($_.name -replace '(d+)', '')这块,由于这里使用的是参数形式的命令,所以要加括号,否则会报错。

最后

以上就是真实奇异果为你收集整理的PowerShell正则替换+批量修改文件名写在前面问题与分析具体代码及讲解的全部内容,希望文章能够帮你解决PowerShell正则替换+批量修改文件名写在前面问题与分析具体代码及讲解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部