标题: [文件操作] 批处理如何去掉文件夹名字中的中文保留数字? [打印本页]
作者: 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 编辑
第一问:- @echo off&setlocal enabledelayedexpansion
- for /d %%a in (*) do (
- set "str=%%a"&set "str=!str:~2!"
- for /f "delims=0123456789" %%b in ("!str!") do set "str=%%b"&ren "%%a" "!str:%%b=!"
- )
复制代码
第二问:- @echo off&setlocal enabledelayedexpansion
- for /d %%a in (*) do (
- set "str=%%a"
- for /f "delims=0123456789" %%b in ("%%a") do ren "%%a" "!str:%%b=!"
- )
复制代码
作者: batman 时间: 2011-6-1 23:52
遍历只要用for /r就可以了:
第三问:- @echo off&setlocal enabledelayedexpansion
- for /r %%a in (.) do (
- set "str=%%~nxa"&set "str=!str:~2!"
- for /f "delims=0123456789" %%b in ("!str!") do ren "%%a" "!str:%%b=!"
- )
复制代码
第四问:- @echo off&setlocal enabledelayedexpansion
- for /r %%a in (.) do (
- set "str=%%~nxa"
- for /f "delims=0123456789" %%b in ("%%~nxa") do ren "%%a" "!str:%%b=!"
- )
复制代码
作者: CrLf 时间: 2011-6-2 13:50
第一问:- @echo off
- for /f %%a in ('dir /ad /b|findstr /b "09[0-9][0-9][^'-Z]"') do (
- set tmp=%%~nxa
- setlocal enabledelayedexpansion
- ren "%%~sa" !tmp:~2,4!
- endlocal
- )>nul
复制代码
第二问:- @echo off&setlocal enabledelayedexpansion
- for /f %%a in ('dir /ad /b') do (
- set /a n+=1
- move "!n!*\" !n!
- )>nul 2>nul
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |