Board logo

标题: [文件操作] 批处理中如何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

&&这个是没有办法用*来匹配的,变通下吧:
  1. @echo off&setlocal enabledelayedexpansion
  2. 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

  1. @echo off
  2. for /f "delims=" %%i in ('dir /b *.txt') do (
  3.    for /f "tokens=* delims=0" %%j in ("%%i") do ren "%%i" "%%j"
  4. )
复制代码

作者: neorobin    时间: 2009-12-9 21:29

用 dir 0*.txt  只会处理 0 开头的文件, 如果目录中有其它不是 0 开头的文件, 不这样就都会被 "砍头"
  1. 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

  1. @echo off
  2. for /f "delims=" %%i in ('dir /b *.txt') do set n=%%i&call %%n:*0=ren %%i=%%
  3. 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