Board logo

标题: [文件操作] 批处理重命名文件:如何删除指定字符前面的所以字符 [打印本页]

作者: johnzhou    时间: 2021-12-22 10:45     标题: 批处理重命名文件:如何删除指定字符前面的所以字符

有几个文件:“建行-陈某某.xls”、“所有银行-王某.xls”等等
现要重命名这些文件,删除“-”字符前面的所有字符,包括“-”字符,新的文件名为:“陈某某.xls”、“王某.xls”等等
批处理如何写哪位高手知道,谢谢。
作者: wudi61600963    时间: 2021-12-22 13:19

本帖最后由 wudi61600963 于 2021-12-22 13:24 编辑
  1. @echo off
  2. pushd "%~dp0"
  3. if not exist "%~1" for /F %%# in ('dir /b /a-d /o-d "*.xls"') do call:Process_Step2 "%%#" 1
  4. :Process_Step1
  5. if /I "%~x1"==".xls" goto Process_Step2
  6. if "%~a1"=="d----------" for /R "%~1" %%# in (*.xls) do call:Process_Step2 "%%#" 1
  7. if "%~1"=="" goto The_End
  8. shift /1&goto Process_Step1
  9. :Process_Step2
  10. for /F "tokens=1,* delims=-" %%i in ("%~nx1") do ren "%~f1" "%%j"
  11. if "%~2"=="1" (goto:eof) else shift /1&goto Process_Step1
  12. :The_End
  13. for /L %%# in (6,-1,1) do cls&echo 已处理完成。&echo;&echo %%# 秒后自动退出...&timeout/T 1 >nul
  14. exit
复制代码
功能说明:
· 双击批处理:                   移除当前目录下 xls 文件名中 "-" 符号与前缀(不含子目录)
· 拖动文件至批处理:           移除 xls 文件名中 "-" 符号与前缀(支持拖动多个文件,文件路径总长度不能超过 8191 个字符)
· 拖动文件夹至批处理:        移除文件夹目录下全部的 xls 文件名中 "-" 符号与前缀(含子目录,支持拖动多个文件夹,文件路径总长度不能超过 8191 个字符)

* 支持文件/文件夹混合拖动
作者: Batcher    时间: 2021-12-22 13:22

回复 1# johnzhou


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "tokens=1* delims=-" %%i in ('dir /b /a-d *.xls') do (
  4.     ren "%%i-%%j" "%%j"
  5. )
复制代码

作者: johnzhou    时间: 2021-12-22 16:54

回复 3# Batcher


    上面的程序有点看不懂,请问“-”在程序中是如何确认的?
另外,如何是删除“-”之后的文字,那又如何写?
作者: funken    时间: 2021-12-22 17:51

回复 4# johnzhou
上面用的是for以-为分隔符号,第一个-前面内容传到%%i,然后-后面内容专到%%j就形成了 ren "%%i-%%j" "%%j"
作者: Batcher    时间: 2021-12-22 21:28

回复 4# johnzhou
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "tokens=1* delims=-" %%i in ('dir /b /a-d *.xls') do (
  4.     ren "%%i-%%j" "%%i.xls"
  5. )
复制代码

作者: johnzhou    时间: 2021-12-22 23:51

回复  johnzhou
Batcher 发表于 2021-12-22 21:28



    老大,你这个代码太彻底了,把我的文件夹后缀.xls也一并删除了,系统都不认识是什么格式的文件了。Excel文件格式还是要保留的。
作者: qixiaobin0715    时间: 2021-12-23 06:29

本帖最后由 qixiaobin0715 于 2021-12-23 06:42 编辑

回复 7# johnzhou
自己也要懂一点代码,谁写代码都会有走神的时候,6楼代码第4行最后,加上扩展名就是了。"%%i"-->"%%i.xls"
作者: Batcher    时间: 2021-12-23 13:50

回复 7# johnzhou


    谢谢提醒,已更正。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2