Board logo

标题: [文件操作] 批处理如何去掉文件夹名字中的中文保留数字? [打印本页]

作者: regabc    时间: 2011-6-1 23:13     标题: 批处理如何去掉文件夹名字中的中文保留数字?

如何实现两种功能?
1、如何去掉头部固定一组两位数字和后面的中文名称
固定一组两位数字,规律性是:01~09、10、11、12一直递增。

2、如何保留递增的数字,删除掉后面的中文名称
数字的规律性是:1~10、11、12一直递增。

3、如何遍历所有子目录去掉头部固定一组数字和后面的中文名称

4、如何遍历所有子目录保留递增的数字,实现以下这样的效果:

主目录:01~09、10、11、12,末尾都带有中文
子目录:091~099、10、11、12,末尾都带有中文
实现以下这样效果>>>>
主目录:1~9、10、11、12,去尾部中文
子目录:1~9、10、11、12,去头部的(01~09、10、11、12)和尾部中文
作者: batman    时间: 2011-6-1 23:26

本帖最后由 batman 于 2011-6-1 23:53 编辑

第一问:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /d %%a in (*) do (
  3.      set "str=%%a"&set "str=!str:~2!"
  4.      for /f "delims=0123456789" %%b in ("!str!") do set "str=%%b"&ren "%%a" "!str:%%b=!"
  5. )
复制代码
第二问:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /d %%a in (*) do (
  3.      set "str=%%a"
  4.      for /f "delims=0123456789" %%b in ("%%a") do ren "%%a" "!str:%%b=!"
  5. )
复制代码

作者: batman    时间: 2011-6-1 23:52

遍历只要用for /r就可以了:
第三问:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a in (.) do (
  3.      set "str=%%~nxa"&set "str=!str:~2!"
  4.      for /f "delims=0123456789" %%b in ("!str!") do ren "%%a" "!str:%%b=!"
  5. )     
复制代码
第四问:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a in (.) do (
  3.      set "str=%%~nxa"
  4.      for /f "delims=0123456789" %%b in ("%%~nxa") do ren "%%a" "!str:%%b=!"
  5. )
复制代码

作者: CrLf    时间: 2011-6-2 13:50

第一问:
  1. @echo off
  2. for /f %%a in ('dir /ad /b|findstr /b "09[0-9][0-9][^'-Z]"') do (
  3.    set tmp=%%~nxa
  4.    setlocal enabledelayedexpansion
  5.    ren "%%~sa" !tmp:~2,4!
  6.    endlocal
  7. )>nul
复制代码
第二问:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in ('dir /ad /b') do (
  3.    set /a n+=1
  4.    move "!n!*\" !n!
  5. )>nul 2>nul
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2