jingjim 发表于 2023-4-10 11:00

批量处理文件名,bat批处理

什么?为了个批量处理文件名称要下载一个软件?
告诉你没必要! 一个批处理能解决的事情就没必要下载软件了,下载软件又存在不定风险

```
@echo off
chcp 65001 > nul
setlocal EnableExtensions EnableDelayedExpansion

rem 定义非法字符列表
set "illegal=^<^>^:^"^/^?*"

:input_prefix
set /p "prefix=请输入前缀名称:"

rem 检查输入的前缀名称是否包含非法字符
set "cleaned=%prefix%"
set "is_legal=true"
for %%i in (%illegal%) do (
    set "cleaned=!cleaned:%%~i=!"
    if not "!cleaned!" equ "%prefix%" set "is_legal=false"
)

if not "%is_legal%" equ "true" (
    echo 前缀名称中不能包含以下非法字符:%illegal%
    goto input_prefix
)

set /p "ext=请输入要重命名的文件后缀名(不含点号):"
set "count=0"

for /f "delims=" %%f in ('dir /a-d /b /on *.%ext%') do (
    set "filename=%%~nf"
    set /a "count+=1"

    rem 如果文件名包含空格,需要使用双引号将文件名括起来
    if "!filename!" neq "%%~nf" set "filename="!filename!""

    rem 如果文件名已经被重命名了,直接跳过
    if "!filename:~0,8!" equ "!prefix!_" (
      echo [跳过] !filename!.%ext%
    ) else (
      set "newname=!prefix!!count!.%ext%"
      echo [重命名] !filename!.%ext% -^> !newname!
      ren "%%f" "!newname!"
    )
)

echo 重命名完成!
pause

```


为啥需要上传三张测试图?
复制上面bat代码 保存在txt文本,改txt后缀为bat,将其放在需要修改目录里即可享用
需要其他修改功能,请留言!

海洋之心专用 发表于 2023-4-10 13:13

本帖最后由 海洋之心专用 于 2023-4-10 13:16 编辑

首先感谢大佬分享,但是大佬 我咋觉得这个工具有点多此一举。
   
我操作你的源码步骤是 :1.启动程序 2.输入我要改成的名字    3.输入我要修改的文件后缀   

我直接全选文件后右键直接重命名不就完事了?为什么还要额外用工具呢?

详见动画
https://s2.loli.net/2023/04/10/d4m6eoEGq1uRkrT.gif

ere 发表于 2023-4-10 11:16

感觉你这个复杂了,直接用ren

sgbyg 发表于 2023-4-10 11:09

本帖最后由 sgbyg 于 2023-4-10 11:17 编辑

一行代码就够了{:301_997:}
https://pic.imgdb.cn/item/64337f890d2dde57776bb8fd.gif

dreamact 发表于 2023-4-10 12:24

我还是感觉工具简单一点儿

jiongxian 发表于 2023-4-10 12:26

这楼里学到不少办法,谢谢了{:1_893:}

csy132546 发表于 2023-4-10 13:03

直接文件夹里面CTRL+A 然后改一个文件名就都改了

Math1cAiki 发表于 2023-4-10 13:33

感觉多此一举,不过就当做熟悉一下批处理了233

JieW_L 发表于 2023-4-10 14:42

ReNamer Pro

alidiudiu 发表于 2023-4-10 15:19

评论区里出大神一点都没错。
页: [1] 2 3
查看完整版本: 批量处理文件名,bat批处理