标题: [文件操作] 批处理重命名文件:如何删除指定字符前面的所以字符 [打印本页]
作者: johnzhou 时间: 2021-12-22 10:45 标题: 批处理重命名文件:如何删除指定字符前面的所以字符
有几个文件:“建行-陈某某.xls”、“所有银行-王某.xls”等等
现要重命名这些文件,删除“-”字符前面的所有字符,包括“-”字符,新的文件名为:“陈某某.xls”、“王某.xls”等等
批处理如何写哪位高手知道,谢谢。
作者: wudi61600963 时间: 2021-12-22 13:19
本帖最后由 wudi61600963 于 2021-12-22 13:24 编辑
- @echo off
- pushd "%~dp0"
- if not exist "%~1" for /F %%# in ('dir /b /a-d /o-d "*.xls"') do call:Process_Step2 "%%#" 1
-
- :Process_Step1
- if /I "%~x1"==".xls" goto Process_Step2
- if "%~a1"=="d----------" for /R "%~1" %%# in (*.xls) do call:Process_Step2 "%%#" 1
- if "%~1"=="" goto The_End
- shift /1&goto Process_Step1
-
- :Process_Step2
- for /F "tokens=1,* delims=-" %%i in ("%~nx1") do ren "%~f1" "%%j"
- if "%~2"=="1" (goto:eof) else shift /1&goto Process_Step1
-
- :The_End
- for /L %%# in (6,-1,1) do cls&echo 已处理完成。&echo;&echo %%# 秒后自动退出...&timeout/T 1 >nul
- 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- @echo off
- cd /d "%~dp0"
- for /f "tokens=1* delims=-" %%i in ('dir /b /a-d *.xls') do (
- ren "%%i-%%j" "%%j"
- )
复制代码
作者: 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 - @echo off
- cd /d "%~dp0"
- for /f "tokens=1* delims=-" %%i in ('dir /b /a-d *.xls') do (
- ren "%%i-%%j" "%%i.xls"
- )
复制代码
作者: 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 |