使用PowerShell实现批量修改或替换文件名

本文介绍基于PowerShell语言,对文件夹中全部文件的名称加以批量替换、修改的方法。

在之前的文章基于Python实现自动批量修改文件名称中,我们介绍了基于Python语言,批量修改大量文件的名称的方法。当时我们修改文件名的需求比较复杂,因此选择了用Python语言来实现;而在我们的需求重命名规则相对比较简单时,则可以基于PowerShell语言来实现。本文就介绍基于PowerShell语言,批量修改文件夹中大量文件的名称的方法。

首先,来看一下我们的需求。现有一个文件夹,如下图所示,其中我们需要修改全部文件的文件名;修改的规则是,将原有每一个文件的名称中的字段CRO修改为GRA

知道了需求,接下来我们即可开始具体操作。首先,在存放有这些需要修改的文件的文件夹中,按下Shift键,同时在空白处点击鼠标右键;随后,在弹出的选择列表中,选择“在此处打开Powershell窗口”选项,如下图所示。

接下来,将弹出如下所示的窗口。

随后,输入如下所示的代码。

Get-ChildItem -Filter "*.csv" -File | ForEach-Object {
  $newname = $_.Name -replace "CRO", "GRA"
  Rename-Item $_.FullName $newname
}

当运行此命令时,它将使用 Get-ChildItem cmdlet(命令行实用程序)获取当前目录中所有具有 .csv 扩展名的文件的列表,并将其传递到管道中。然后,管道符号 | 将传递的对象传递到 ForEach-Object cmdlet 中,这个 cmdlet 会对每个文件执行指定的操作。

对于每个文件,$newname = $_.Name -replace "CRO", "GRA" 这一行代码将创建一个新变量 $newname,其中包含了修改后的文件名,即将所有 CRO 替换为 GRA$_.Name 表示当前文件对象的名称。

最后,Rename-Item $_.FullName $newname 将文件的完整路径名($_.FullName)与新的名称($newname)一起传递给 Rename-Item cmdlet,以便将文件重命名为新名称。

按下回车键,即可运行这一程序。稍等片刻,即可完成代码的运行;其中,当出现如下所示的字样,表明程序已经运行完毕(我这里因为当时按下了两次回车键,所以这段字样出现了两次)。

此时,可以看到文件夹中的文件都已经是重命名之后的了。

这一方法较之上述文章中提及的Python语言修改文件名,可以说相对更方便一些;尤其是在我们的文件重命名需求相对较为简单的情况下,用这一方法可以说非常快速、方便了。

至此,大功告成。

到此这篇关于使用PowerShell实现批量修改或替换文件名的文章就介绍到这了,更多相关PowerShell修改替换文件名内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • PowerShell遍历文件、文件夹的方法

    PowerShell遍历文件夹下的子文件夹和文件是一件很容易的事儿.Get-ChildItem这个cmdlet就有一个recurse参数是用于遍历文件夹的. PowerShell中,使用Get-ChildItem来获取文件夹下面的子文件夹和文件(当然,它的功能不仅于此).然后我们可以使用ForEach-Object的cmdlet来循环遍历下面的子对象.然后通过psiscontainer 属性来判断是文件夹还是文件. Get-ChildItem,获取指定对象的所有子对象集合. 举例: 复制代码 代

  • PowerShell批量文件重命名操作实例

    总算发现PowerShell相对于CMD来说实用的地方了. 事情是这样的,我下载了一些美剧(抱歉,看完会删的),通常文件名都比较长,包含了很多我不需要的信息,,比如: 复制代码 代码如下: 别对我撒谎.Lie.To.Me.S02E11.Chi_Eng.HDTVrip.720×396-YYeTs人人影视V2.rmvb 别对我撒谎.Lie.To.Me.S02E12.Chi_Eng.HDTVrip.720×396-YYeTs人人影视.rmvb 别对我撒谎.Lie.To.Me.S02E13.Chi_En

  • PowerShell实现批量重命名文件

    假设你有一个很大的文件夹,里面全是图片,你想对文件夹中图片的名称,按照某个统一的规则进行重命名,本文的脚本会简单进行演示: $i = 0 Get-ChildItem -Path c:\pictures -Filter *.jpg | ForEach-Object { $extension = $_.Extension $newName = 'pic_{0:d6}{1}' -f $i, $extension $i++ Rename-Item -Path $_.FullName -NewName $

  • Powershell获取图片名字、文件夹及拍摄时间的例子

    如果你想要整理你的图片档案,这里有一段代码它能从图片文件获取相关的拍摄信息. 这个例子使用一个系统函数获得"我的图片"的路径,接着从其目录和子目录查询所有的文件.获得的结果通过管道符传递给函数Get-DateTaken,它将返回这些图片的名字.文件夹及照片的拍摄日期. 复制代码 代码如下: function Get-DateTaken{  param  (    [Parameter(ValueFromPipeline=$true, ValueFromPipelineByPropert

  • Powershell 之批量获取文件大小的实现代码

    效果图: 核心代码 $startFolder = "D:\" $colItems = (Get-ChildItem $startFolder | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object) foreach ($i in $colItems) { $subFolderItems = (Get-ChildItem $i.FullName -recurse | Measure-Object -property length

  • PowerShell实现查询打开某个文件的默认应用程序

    许多文件扩展名和一个可执行应用程序绑定.正因为这样你才可以使用Invoke-Item打开一个文档. 要找出一个给定后缀名的文件是由那个默认引用程序打开它,并不麻烦.我们可以使用Windows系统中的注册表,自行编程解决.但是在扫描注册表时,要稍微留意一下32位和64位机器的问题,这不是本文重点,点到为止. 另外一种途径,稍显旁门左道,调用Windows API.下面的例子会演示如何调用.采取这种途径最大的优势是借力于操作系统.而你的付出成本只是用C#代码间接调用Windows API中的函数而已

  • 使用PowerShell实现批量修改或替换文件名

    本文介绍基于PowerShell语言,对文件夹中全部文件的名称加以批量替换.修改的方法. 在之前的文章基于Python实现自动批量修改文件名称中,我们介绍了基于Python语言,批量修改大量文件的名称的方法.当时我们修改文件名的需求比较复杂,因此选择了用Python语言来实现:而在我们的需求重命名规则相对比较简单时,则可以基于PowerShell语言来实现.本文就介绍基于PowerShell语言,批量修改文件夹中大量文件的名称的方法. 首先,来看一下我们的需求.现有一个文件夹,如下图所示,其中我

  • Linux中用rename命令批量替换文件名方法实例

    前言 在Linux系统中修改文件名可以用mv命令,但是它只能对单个文件进行操作,如要要批量执行还要写shell脚本,用for语句迭代执行,不过Linux中另外一个命令支持批量替换文件名,它是rename,rename支持正则表达式匹配. 需要注意的是:rename命令在不同的Linux发行版语法格式不一样. 语法 在Debian或者Ubuntu环境下使用的语法是: rename 's/stringx/stringy/' files 而在CentOS下或者RedHat下是: rename stri

  • Python实现批量修改文件名实例

    本文实例讲述了Python实现批量修改文件名的方法.分享给大家供大家参考.具体如下: 下载了评书<贺龙传奇>,文件名中却都含有xxx有声下载,用脚本将其去掉.脚本涉及os.rename重命名方法,str.partition方法使用, 及正则match,search方法区别 # encoding:utf-8 ## # 文件名如: # 贺龙传奇\d+[有声下吧www.ysx8.com].mp3 ## import os,re fs=os.listdir('单田芳_贺龙传奇') for f in f

  • Java实现批量修改文件名和重命名的方法

    平时下载的文件.视频很多都会有网址前缀,比如一些编程的教学视频,被人共享出来后,所有视频都加上一串长长的网址,看到就烦,所以一般会重命名后看,舒服很多,好了,不多说,直接上代码: 以下代码演示使用递归的方式批量重命名文件 import java.io.File; import java.io.IOException; /** * @Auther: Code * @Date: 2018/9/9 18:02 * @Description: 批量重命名文件 */ public class test {

  • 使用R语言批量修改文件名的方法

    在R语言默认目录下有一文件夹test,其下有三个文件,分别是test1.txt, text2.txt, text3.txt, 现在要对这三个文件进行批量的修改.主要使用到了for 循环和sub()字符替换函数.思路是先通过list.files()函数将test文件夹下面的三个文件名读至变量,然后通过for循环来实现批量修改文件名. 1. 修改文件扩展名 folder<-setwd('~/test') files<-list.files(folder) for (f in files){ new

  • 利用Python的tkinter模块实现界面化的批量修改文件名

    用Python编写过批量修改文件名的脚本程序,代码很简单,运行也比较快,唯一美中不足之处是每次批量修改文件名时都需要执行以下步骤: 1)复制文件夹路径: 2)打开脚本程序 3)替换脚本中的文件夹路径 4)保存脚本程序 5)执行脚本程序 为了便于操作,最好还是弄成GUI界面,手动选择文件夹,这样程序也更通用.Python中的GUI库很多,绝大部分都支持跨平台,其中安装python时自带的GUI库是tkinter,本文就学习并创建基于tkinte的批量修改文件名程序. 本文涉及的知识点包括以下几个:

  • 批处理实现批量修改文件名

    我们已经会使用循环命令对大量文件改名进行批量处理.但总结一下,该批处理并不是很健壮. 判断一个程序的好坏,往往不是站在程序员的角度,而从用户的角度出发. 比如:在用户使用它的时候,如果输入了不正确的路径格式怎么办?如果输入了含有非法符号的前缀怎么办?输入的扩展名也有问题怎么办?改完名后看不到是否执行成功的反馈信息,等等.带着这些想法,我们将原程序再次修改一下. :::::::批量修改文件名.bat::::::: @echo off title 批量修改文件名 setlocal EnableDel

  • java批量修改文件名的实现方法

     java批量修改文件名的实现方法 初次学习java,被java的灵活性和简洁的思路所吸引 需求: 看到java视频在播放器列表中的文件名很长,每次都需要拉长列表才能看清全名,故写此代码批量修改该文件夹下所有文件名 实现代码: import java.io.*; class filesRename { public static void main(String[] args) throws IOException { String str1 = new String("这里是需要删除的文件名前

  • python批量修改文件名的实现代码

    #coding:utf-8 #批量修改文件名 import os import re import datetime re_st = r'(\d+)\+\s?\((\d+)\)' #用于匹配旧的文件名,需含分组 re_match_old_file_name = re.compile(re_st) #要修改的目录 WORKING_PATH = r'F:\Gallery' #---------------------------------------------------------------

  • 视频合并时使用python批量修改文件名的方法

    不知道大家有没有遇到这样的情况,比如视频合并时文件名没有按照正常顺序排列,像这样 可见,文件名排序是乱的.这个样子合并出来的视频一定也是乱的.所以得想办法把文件名修改一下,让软件读取出正确的顺序.闲话少说,上代码. """ 注意:一.文件名除去扩展名必须以 '_' + 数字 结尾.  二.convert.py 放在文件目录.  三.目录中不能有多余文件 主要算法: 根据最大数字的位数添加0 例如,如果最大数字为123,那么位数为3位,  1就要变成001.2变成002.23变

随机推荐