coderbest 发表于 2024-8-26 11:21

使用bat脚本批量修改文件名

本帖最后由 苏紫方璇 于 2024-8-26 12:03 编辑

很多从网上下载的资料文件名会带有该网站的后缀,以下就是去掉后缀的脚本,用.bat为后缀保存在一个文件中双击执行就好,
例如 File【xx论坛 www.demo.com】.txt   会改为 File.txt
核心代码是这个ren "%%f" "!filename:【xx论坛 www.demo.com】=!",将【xx论坛 www.demo.com】替换为空
ren "%%f" "!filename:【xx论坛 www.demo.com】=!123456",将【xx论坛 www.demo.com】替换为123456
所以本质上就是替换

@echo off
setlocal enabledelayedexpansion
for %%f in (*.*) do (
    set "filename=%%f"
    set "ext=%%~xf"
    set "newfilename=!filename:0=!"
    echo !newfilename!
    echo !filename:【xx论坛 www.demo.com】=!
    ren "%%f" "!filename:【xx论坛 www.demo.com】=!"
)
endlocal
pause

ManaCola 发表于 2024-8-26 14:21

这个bat简单直观,纯粹些

chinaarchy 发表于 2024-11-5 00:21

# 指定要处理的目录
$directory = "C:\Path\To\Your\Directory"

# 获取目录中的所有文件
$files = Get-ChildItem -Path $directory

foreach ($file in $files) {
    # 移除文件名中的【】及其内容
    $newName = $file.Name -replace '【.*?】', ''

    # 如果文件名发生了变化,则重命名文件
    if ($newName -ne $file.Name) {
      $newFilePath = Join-Path -Path $directory -ChildPath $newName
      Rename-Item -Path $file.FullName -NewName $newName -WhatIf
    }
}
powershell脚本
实际操作去掉最后的 -WhatIf

restart19 发表于 2024-8-26 12:25

Python,结合re模块,用正则可能比较宽泛一些

Natu 发表于 2024-8-26 15:43

用批处理太费劲,还是用文本编辑器的正则替换比较简单些

lqao120 发表于 2024-8-26 15:54

这个我可太喜欢了 ,不过我是改图片的名称   试看看能不能改{:1_918:}

josin 发表于 2024-8-26 16:55

批处理有点单调了些,有些复杂的就用不上了。

Tyh52pj 发表于 2024-8-26 22:01

可以可以简单直观

ot1686 发表于 2024-8-27 18:40

感谢大佬分享这个牛掰的bat脚本,解决了我的大难题,太给力了!

Don4R 发表于 2024-8-28 10:09

学习大佬的脚本,看看能处理文件名中有空格的情况吗

coderbest 发表于 2024-8-29 13:14

lqao120 发表于 2024-8-26 15:54
这个我可太喜欢了 ,不过我是改图片的名称   试看看能不能改

可以的,循环设置的是所有文件:for %%f in (*.*)
页: [1] 2
查看完整版本: 使用bat脚本批量修改文件名