分享

powershell一行代码批量修改文件名(附命令详解)

 黄三岁大爱人生 2023-09-07 发布于广西

文章目录

  • 写在前面
  • 具体步骤
  • 命令详解
  • 注意事项
  • 简单示例
  • 总结

写在前面

在日常办公中,批量修改照片/视频的文件名是一件让很多人头疼却又不得不面对的事情。我就经常会遇到下载的视频文件名中带有广告等信息的情况。

今天给大家介绍一种简单易懂的方法用来批量修改文件名,用到的工具是Windows 10系统自带的powershell(鉴于其跨平台的特性,Mac、Linux用户也可以使用powershell)。

具体步骤

  1. 新建文本文档,复制如下代码,并做修改
ls 'D:\Desktop\test' -i *.txt -r | foreach {ren $_.FullName $_.FullName.Replace('oldname', 'newname')}

D:\Desktop\test 修改为 所要更改的文件夹路径
oldname 修改为 原文件包含的文件名
newname 修改为 要替换的新文件名

  1. 在桌面按住Shift并点击右键—<>powershell窗口>,粘贴上述修改后的命令,回车即可完成文件名的修改

命令详解

命令&方法参数解释
ls读取路径下的所有文件信息
-i为单词Include的首字母,意为包含的内容,可使用通配符,后加参数*.txt意为查找所有后缀名为txt的文件,可自由替换
-r为单词递归Recurse的首字母,意为递归查找
foreach可类比for循环语句,意为对循环的每一个元素进行操作,后加操作内容
$_用于读取每一个由foreach得到的元素,本例中返回文件的详细信息(状态、大小、路径)
.FullName该方法返回文件的完整路径
ren为单词rename的前三个字母,后加文件的原始名称及修改后的名称
.Replace该方法用于进行字符串的替换操作,后加参数:待替换的内容,替换后的内容

注意事项

  1. 以上命令&参数为了简洁可读,均使用别名(Alias)。
  2. powershell命令不区分大小写,首字母大写为提高可读性。
  3. 待替换的文件名不能与路径中出现的内容相同,否则会报错,如下例路径中的Desktop和test,里面的字母若单独出现在待替换的内容中,则会因路径首先被修改而导致找不到文件。
  4. 诸如中文符号(,),《,》等可能会因为编码问题导致修改不能成功,目前仅已知可以通过字符串分割的操作进行处理,欢迎知道的朋友在下方评论,十分感谢!
  5. 对于不同的文件名,有些可能使用替换的方法会比较繁琐,这时候就要具体问题具体分析,欢迎大家一起学习。

简单示例

为方便大家理解,下面展示一个例子作简要说明:

如图1,从网络下载了若干视频(保存在D:\Desktop\test文件夹下),但每一个文件名前面有很多的广告内容:
图1

图1

现利用以上所给方法进行文件名的批量修改
执行如下命令:

ls 'D:\Desktop\test' -i *.txt -r | foreach {ren $_.FullName $_.FullName.Replace('某某某网站荣誉出品--高清无水印--【微信公众号《XXX》获取更多资源】', '')}

所得结果如图2:
图2

图2

总结

powershell目前来看还是一款十分小众的shell工具,但随着其在更多领域(网络安全,系统管理等)上的应用,以及其开源特性,一定会让更多人了解并熟悉这个十分Power的工具。本人最近正在学习powershell,会陆续更新一些相关的博客,欢迎大家支持,指正。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多