标题: [文件操作] 批处理中如何ren命令去掉文件名中的一个字母? [打印本页]
作者: owenlzb2004 时间: 2009-12-9 10:05 标题: 批处理中如何ren命令去掉文件名中的一个字母?
如文件夹下有50个txt文件,名字为01.txt 02.txt 03.txt ....050.txt
怎么匹配前面这个0,修改为1.txt 2.txt 3.txt .... 50.txt呢?谢谢
作者: batman 时间: 2009-12-9 10:25
&&这个是没有办法用*来匹配的,变通下吧:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do set "str=%%~na"&ren "%%a" "!str:~1!%%~xa"
复制代码
作者: owenlzb2004 时间: 2009-12-9 10:28
非常感谢,我分析学习下
作者: caruko 时间: 2009-12-9 10:33
不错哦
~n ~x 很方便的解决了文件名截取
作者: FOR 时间: 2009-12-9 20:35
- @echo off
- for /f "delims=" %%i in ('dir /b *.txt') do (
- for /f "tokens=* delims=0" %%j in ("%%i") do ren "%%i" "%%j"
- )
复制代码
作者: neorobin 时间: 2009-12-9 21:29
用 dir 0*.txt 只会处理 0 开头的文件, 如果目录中有其它不是 0 开头的文件, 不这样就都会被 "砍头"- cmd /q /v:on /c "for /f "delims=" %%a in ('dir 0*.txt /a-d /b') do set "n=%%a"&ren "%%a" "!n:*0=!""
复制代码
[ 本帖最后由 neorobin 于 2009-12-9 21:38 编辑 ]
作者: batman 时间: 2009-12-10 09:37 标题: 回复 6楼 的帖子
楼主是说目录下全是以0打头的txt文件,批处理是讲究“因地制宜”的,总不能每次都写一个完全通用的代码出来吧。。。
作者: neorobin 时间: 2009-12-10 23:45 标题: 回复 7楼 的帖子
同意, 确实该 因地制宜, 以简对简, 以繁对繁
作者: 刘杭州 时间: 2012-6-4 21:50
有同样的问题,求高手指点迷津!我不知道怎样看,怎样想,就是不明白!我是刚接触cmd一个星期多了,我哥教我用ren改文件名,我只学会了改单个的,像楼主说的,我怎样看都看不出什么名堂来!哎。。真的不明白该怎样学了!晕了!我本来学问就低!哎。。求高手指点迷津!
作者: lxzzr 时间: 2012-6-4 21:59
- @echo off
- for /f "delims=" %%i in ('dir /b *.txt') do set n=%%i&call %%n:*0=ren %%i=%%
- pause
复制代码
作者: 刘杭州 时间: 2012-6-5 16:32
为什么,我看不懂:(@echo off
for /f "delims=" %%i in ('dir /b *.txt') do set n=%%i&call %%n:*0=ren %%i=%%
pause)?这些字符都带表着什么呢?为什么我就看不懂!是我学历低吗?想找个批处理的老师,好好的学!我哥会,但是他县我太笨了!老师说我笨!
作者: lxzzr 时间: 2012-6-5 17:03
回复 11# 刘杭州
多看看基础的先,等你基础上来了再去看看人家写的代码,都是从菜鸟过来的,没人天生就会,勤奋是最好的捷径
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |