找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20307|回复: 8

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

[复制链接]
发表于 2021-12-22 10:45:08 | 显示全部楼层 |阅读模式
有几个文件:“建行-陈某某.xls”、“所有银行-王某.xls”等等
现要重命名这些文件,删除“-”字符前面的所有字符,包括“-”字符,新的文件名为:“陈某某.xls”、“王某.xls”等等
批处理如何写哪位高手知道,谢谢。
发表于 2021-12-22 13:19:13 | 显示全部楼层
本帖最后由 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 个字符)

* 支持文件/文件夹混合拖动
发表于 2021-12-22 13:22: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. )
复制代码
 楼主| 发表于 2021-12-22 16:54:24 | 显示全部楼层
回复 3# Batcher


    上面的程序有点看不懂,请问“-”在程序中是如何确认的?
另外,如何是删除“-”之后的文字,那又如何写?
发表于 2021-12-22 17:51:55 | 显示全部楼层
回复 4# johnzhou
上面用的是for以-为分隔符号,第一个-前面内容传到%%i,然后-后面内容专到%%j就形成了 ren "%%i-%%j" "%%j"
发表于 2021-12-22 21:28:38 | 显示全部楼层
回复 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. )
复制代码
 楼主| 发表于 2021-12-22 23:51:02 | 显示全部楼层
回复  johnzhou
Batcher 发表于 2021-12-22 21:28



    老大,你这个代码太彻底了,把我的文件夹后缀.xls也一并删除了,系统都不认识是什么格式的文件了。Excel文件格式还是要保留的。
发表于 2021-12-23 06:29:03 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-12-23 06:42 编辑

回复 7# johnzhou
自己也要懂一点代码,谁写代码都会有走神的时候,6楼代码第4行最后,加上扩展名就是了。"%%i"-->"%%i.xls"
发表于 2021-12-23 13:50:19 | 显示全部楼层
回复 7# johnzhou


    谢谢提醒,已更正。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 20:47 , Processed in 0.032582 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表