标题: [文件操作] [已解决]求助:修改批处理代码,删除文件名中的指定数字 [打印本页]
作者: shimuren 时间: 2015-9-16 00:50 标题: [已解决]求助:修改批处理代码,删除文件名中的指定数字
- @echo off&setlocal enabledelayedexpansion
- for /r %%a in (*) do (
- set "str="&set "var="&call :lp "%%~na"
- if defined var ren "%%a" "!var:~1!%%~xa"
- )
- goto :eof
- :lp
- if not defined str set "str=%~1"
- for /f "tokens=1* delims=," %%a in ("%str%") do (
- if "%%b" neq "" set "var=%var%,%%a"&set "str=%%b"&goto lp
- )
复制代码
怎么让他只删除后面是数字的 ,如果是其他格式的(如字母,不连续数字22-33)就不删除
作者: pcl_test 时间: 2015-9-16 01:27
新人须知,本版规则
1、求助时,务必在顶楼一次性把问题交代清楚,建议给出完整有针对性的样本,样本过大可发网盘分享链接。勿发无意义的标题
2、使用 code 标记把代码部分括起来(单击回复框的 <> 按钮,复制粘贴代码进去),以便复制。问题解决后,请编辑顶楼帖子在标题前面注明[已解决]http://www.bathome.net/thread-3473-1-1.html
3、提问前先使用论坛搜索,勿发同类贴、重复贴
作者: 回家路上 时间: 2015-9-16 09:47
代码要用code标签括起来
这拉风的代码是要干嘛?
作者: CrLf 时间: 2015-9-16 16:30
歪楼:
call lp = 呼叫老婆
作者: shimuren 时间: 2015-9-16 20:36
回复 3# 回家路上
就是修改成:删除文件名时候判断下 是对应的格式就删 不是就不删
作者: 回家路上 时间: 2015-9-16 20:57
本帖最后由 回家路上 于 2015-9-16 21:55 编辑
回复 5# shimuren
这么半天了,就是不说你需求,
让别人读代码去揣测需求总是不好。- @echo off&setlocal enabledelayedexpansion
- for /r %%a in (*) do (
- set fn=%%~na
- set tmp=!fn:,=,!
- if "!tmp!" neq "%%~na" (
- for %%i in (!tmp!) do set suf=%%i
- for /f "delims=0123456789" %%i in ("!suf!") do set isNaN=1
- if not defined isNaN for %%i in (!suf!) do ren "%%~nxa" "!fn:,%%i=!%%~xa"
- set isNaN=
- )
- )
- pause & exit /b
复制代码
作者: shimuren 时间: 2015-9-17 08:47
回复 6# 回家路上
不好意思 就是修改成只删除某个字母开头的某一段比如文件名:单向,22-30,N456.txt,执行批处理后,只删除,N456这段信息,如果没有字母N开头的就不删除,最好还要能支持拖拽到图标上执行
谢谢
作者: 回家路上 时间: 2015-9-17 10:23
一个特例不算例子。我不再猜测了。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |