批处理修改文件名

winxp系统,需要将选定目录内所有文件(包括子文件夹下)按条件重命名
如果原文件名含有“2016”,不更改文件名
否则在原文件名前增加“2018”
求个bat批处理文件,多谢

这种情况一般批处理比较麻烦,AutoIt脚本编程也许会更好实现,不过我给你支一招不用敲代码。

1、下载Freecommander XE 2018,官方下载或绿色版都可以。

程序图标

2、找到选定要批量重命名的目录,搜索文件名,-2016排除不必改名的文件

3、选中其他需要改名的文件,点击中间工具栏,导出项目到一个容器窗口中,此时Freecommander会将要改名的文件,放置在安装目录\FreeCommander\Settings\FileContainers\TmpFileContainer-1.fcc

4、按F2进行重命名操作,在模板文件名处,[n]前面输入2018,然后点击重命名。

不用码字,轻松搞定。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-28
方法/步骤

1
在c盘建立一个文件夹,将下载的图片放置于该文件夹中,如下图所示。

2
鼠标左键点击,开始-》运行-》在对话框中输入字母“cmd”,进入dos模式 ,如下图所示。

3
在dos模式输入命令行“cd c:\pic”然后回车,再输入命令行“dir /b>rename.xls",如下图所示,可将文件夹中的文件名在rename.xls文件中列出。
小贴士:有的时候,你的计算机正处于中文输入状态,为确保命令行能够打出来,你可以切换成英文大写状态。

4
随后用xls打开c:\pic文件夹中的rename.xls,你会发现文件名以全部罗列在A列中(你也可以用鼠标来调整文件名的顺序),你可以在B1列中输入1.jpg作为第一个文件文件名。

5
鼠标选中B1单元格,并在B1列的右下方,使鼠标光标变为+号时,拖动使所有jpg文件的右侧B列中都有文件名。再将A8单元格中没有用的文件名删除,如下图示。

6
鼠标选中C1单元格,并在编辑框中输入公式="ren "&A1&" "&B1,如下图所示。

7
继续用鼠标拖动C1单元格右下方的句柄,使剩余的C2-C7单元格填充如下图所示。

8
然后,鼠标选中C列,鼠标右键复制,如下图示。

9
在记事本中,粘贴刚才的命令行,如下图示。

10
鼠标点击菜单“文件”——“另存为”,输入文件名ren.bat,要注意下图所示红圈中的路径及扩展名选项。

11
打开c盘pic文件夹,鼠标双击ren.bat这个批处理文件,即可将该文件夹下的jpg图片,按照刚才rename.xls中的顺序和文件名批量修改文件名,如下图示。

12
自此,你已经完成了批量修改文件名的操作。我们运用了dos命令技巧、xls技巧以及批处理3个知识点来达到批量修改文件名的效果。
END
注意事项

该经验需要有一定dos基础和电脑操作基础的人才能举一反三,如果掌握一定xls函数公式基础的话,可以把批量处理文件名玩得更溜。
第2个回答  2017-06-30
使用copy命令即可在D:\1下新建一个文本文档,里面输入"start",点“另存为”文件名“cmd.bat”。打开“cmd.bat”,出现一个黑框框,在里面输入:copy 1.txt 1.jpg 然后回车。记得,注意空格,copy空格1.txt空格1.jpg,就可以了。试下,满意就选我。还可以批量重命名,命令如下,把所有.txt重命名为.jpg,命令:copy *.txt *.jpg。(注意空格)其实也可以使用rename命令,但是rename命令会使原来的文件没有了,copy会保留原来的文件,可以对比使用下。rename用法:rename 1.txt 1jpg (照样要空格)
第3个回答  2018-04-04
把下面的批处理存为myren.bat,放在某个文件夹下,可以放在windows目录下,然后任意文件夹位置就都能用了。
@for /f "delims=" %%i in ('dir %1 /s /b^|find /v "2016"') do @ren "%%i" "%%~dpi2018%%~nxi"
执行时就这样:myren.bat d:\mydir
注意路径一定要绝对路径,该批处理就会按您的需求改名了,目录下的子目录也支持。
第4个回答  2013-11-04
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b *.txt') do (
    set "var=%%~na"
    echo !var!%%~xa
    set newn=!var:要替换的値=被替换字符!
    echo 替换后的值: !newn!%%~xa
    ren "%%a" "!newn!%%~xa"
)
echo end...
pause

相似回答