zoukankan      html  css  js  c++  java
  • Windows PowerShell批量替换文件名

    Q:

      假如文件夹有批量相似的文件名,如果文件名不符合需求了,要怎么改呢,文档可以“Ctrl + H”一键替换字符,系统文件名可不支持“Ctrl + H”一键替换字符,动手能力强的已经一个个手动在改了/滑稽,你是原始人嘛

    如图:

     A:

      可以通过Windows自带的PowerShell写脚本来实现批量修改文件名

    下面来实现一下

    一、新建记事本,保存为 ".ps1"文件格式

    a. 打开文件写入下面这段内容

     注意:$Path的路径建议写为二级目录,比如"E:Test est",而二级目录的 test 文件夹下就放着你需要改名的文件。如果路径是"E:Test",Test 目录下有其它子目录,且子目录中也有满足脚本的 $Filter 和 $oldtext 规则的文件,那么脚本会将子目录里满足规则的文件名也一并改了,所以建议把需要改名称的文件放到一个文件夹里,将这个文件夹放在二级目录下

    $Path = ''   # 路径:要改名称的文件夹路径
    $Filter = ''   # 过滤器:要改名称的文件格式
    $newtext = ''   # 新字符:符合需求的字符
    $oldtext = ''   # 旧字符:现有的、不符合需求的字符
    
    # 下面这段命令照抄即可
    
    ls $Path -Include $Filter -Recurse | ForEach-Object{Rename-Item $_.Fullname $_.Fullname.Replace($oldtext,$newtext)}

    b. 保存,右键PowerShell运行,不出意外你应该看见一个窗口一闪而过,文件名没有发生任何改变

    c. 为什么呢?因为PowerShell的默认执行策略是 Restricted,这个策略不允许任何不被信任的脚本运行,所以脚本是执行失败了

    二、在Windows里搜索 Windows PowerShell ISE 并以管理员身份运行

    a. 以命令的形式执行脚本可以看到报错信息

    # 使用绝对路径或相对路径执行脚本
    
    $ .script_path**.ps1

    b. 输入以下命令:

    # 查看当前设置的执行策略,可以看到当前策略为 Restricted
    
    $ get-executionpolicy
    
    # 使用下面的命令更改策略为 remotesigned
    
    $ set-executionpolicy remotesigned
    
    # 再次查看当前设置的执行策略,可以看到当前策略为 Remotesigned

    c. 使用命令执行 .ps1 脚本

    # 使用绝对路径或相对路径执行脚本
    
    $ .script_path**.ps1
    
    # 或者将命令 Copy 在终端中执行
    
    $ ls "Path" -Include "Filter" -Recurse |ForEach-Object{Rename-Item $_.FullName $_.FullName.Replace("oldtext","newtext")}

     d. 见证奇迹

    三、收尾工作

    a. 将PowerShell的执行策略改回 Restricted

    # 将PowerShell的执行策略改回默认的 Restricted
    
    $ set-executionpolicy Restricted
    
    # 查看当前设置的执行策略,可以看到当前策略为 Restricted
    
    $ get-executionpolicy

    End...

     
  • 相关阅读:
    快速幂
    1112个人赛,最长回文串常见算法讨论
    11-05-sdust-个人赛赛后随想
    UVA 1149 Bin Packing
    UVa 1608,Non-boring sequences
    UVa 10954,Add All
    UVa 714,Copying Books
    Careercup
    Careercup
    Careercup
  • 原文地址:https://www.cnblogs.com/mrjiang-test/p/13832791.html
Copyright © 2011-2022 走看看