[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

本帖最后由 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 个字符)

* 支持文件/文件夹混合拖动

TOP

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher


    上面的程序有点看不懂,请问“-”在程序中是如何确认的?
另外,如何是删除“-”之后的文字,那又如何写?

TOP

回复 4# johnzhou
上面用的是for以-为分隔符号,第一个-前面内容传到%%i,然后-后面内容专到%%j就形成了 ren "%%i-%%j" "%%j"

TOP

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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



    老大,你这个代码太彻底了,把我的文件夹后缀.xls也一并删除了,系统都不认识是什么格式的文件了。Excel文件格式还是要保留的。

TOP

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

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

TOP

回复 7# johnzhou


    谢谢提醒,已更正。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表