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

[文件操作] [已解决]求助:修改批处理代码,删除文件名中的指定数字

  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a in (*) do (
  3.     set "str="&set "var="&call :lp "%%~na"
  4.     if defined var ren "%%a" "!var:~1!%%~xa"
  5. )
  6. goto :eof
  7. :lp
  8. if not defined str set "str=%~1"
  9. for /f "tokens=1* delims=," %%a in ("%str%") do (
  10.     if "%%b" neq "" set "var=%var%,%%a"&set "str=%%b"&goto lp     
  11. )
复制代码
怎么让他只删除后面是数字的 ,如果是其他格式的(如字母,不连续数字22-33)就不删除
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

新人须知,本版规则
1、求助时,务必在顶楼一次性把问题交代清楚,建议给出完整有针对性的样本,样本过大可发网盘分享链接。勿发无意义的标题
2、使用 code 标记把代码部分括起来(单击回复框的 <> 按钮,复制粘贴代码进去),以便复制。问题解决后,请编辑顶楼帖子在标题前面注明[已解决]http://www.bathome.net/thread-3473-1-1.html
3、提问前先使用论坛搜索,勿发同类贴、重复贴

TOP

代码要用code标签括起来

这拉风的代码是要干嘛?
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

歪楼:
call lp = 呼叫老婆

TOP

回复 3# 回家路上


    就是修改成:删除文件名时候判断下 是对应的格式就删 不是就不删

TOP

本帖最后由 回家路上 于 2015-9-16 21:55 编辑

回复 5# shimuren


这么半天了,就是不说你需求,
让别人读代码去揣测需求总是不好。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a in (*) do (
  3.     set fn=%%~na
  4. set tmp=!fn:,=,!
  5. if "!tmp!" neq "%%~na" (
  6. for %%i in (!tmp!) do set suf=%%i
  7. for /f "delims=0123456789" %%i in ("!suf!") do set isNaN=1
  8. if not defined isNaN for %%i in (!suf!) do ren "%%~nxa" "!fn:,%%i=!%%~xa"
  9. set isNaN=
  10. )
  11. )
  12. pause & exit /b
复制代码
1

评分人数

人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

回复 6# 回家路上


    不好意思    就是修改成只删除某个字母开头的某一段比如文件名:单向,22-30,N456.txt,执行批处理后,只删除,N456这段信息,如果没有字母N开头的就不删除,最好还要能支持拖拽到图标上执行
谢谢

TOP

一个特例不算例子。我不再猜测了。
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

返回列表