批处理修改文件名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了批处理修改文件名相关的知识,希望对你有一定的参考价值。
winxp系统,需要将选定目录内所有文件(包括子文件夹下)按条件重命名
如果原文件名含有“2016”,不更改文件名
否则在原文件名前增加“2018”
求个bat批处理文件,多谢
这种情况一般批处理比较麻烦,AutoIt脚本编程也许会更好实现,不过我给你支一招不用敲代码。
1、下载Freecommander XE 2018,官方下载或绿色版都可以。
程序图标
2、找到选定要批量重命名的目录,搜索文件名,-2016排除不必改名的文件
3、选中其他需要改名的文件,点击中间工具栏,导出项目到一个容器窗口中,此时Freecommander会将要改名的文件,放置在安装目录\\FreeCommander\\Settings\\FileContainers\\TmpFileContainer-1.fcc
4、按F2进行重命名操作,在模板文件名处,[n]前面输入2018,然后点击重命名。
不用码字,轻松搞定。
参考技术A 方法/步骤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函数公式基础的话,可以把批量处理文件名玩得更溜。 参考技术B 使用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 (照样要空格) 参考技术C 把下面的批处理存为myren.bat,放在某个文件夹下,可以放在windows目录下,然后任意文件夹位置就都能用了。
@for /f "delims=" %%i in ('dir %1 /s /b^|find /v "2016"') do @ren "%%i" "%%~dpi2018%%~nxi"
执行时就这样:myren.bat d:\mydir
注意路径一定要绝对路径,该批处理就会按您的需求改名了,目录下的子目录也支持。 参考技术D @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
批处理修改hosts文件
我们公司内部的一个软件,在登陆的时候需要在HOSTS里有一个地址指向,比如:192.168.1.1 XXserver
而现在360安全卫士,和360杀毒都把当成病毒和恶意插件处理了,处理方式是在原地址前加了一个#,使语句失去了指向的意义,软件在登陆时就无法找到服务器!
高手们帮我一下,就是当360卫士处理时候,把192.168.1.1前有#的,自动删去换成空格或. 其他内容不变.
# Copyright (c) 1993-1999 Microsoft Corp.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
192.168.1.1 XXXserver
不知道我说明白了没有,大家能看得懂吧...高手们过来看看..
SET IP=192.168.1.1
SET server=XXXserver
SET HOST="%WinDir%\system32\drivers\etc\hosts"
FINDSTR /V "%IP%" %HOST%>YOU_YOU
ECHO %IP% %server%>>YOU_YOU
MOVE /Y YOU_YOU %HOST%
REM 此行及下行可删除
START NOTEPAD %HOST%
新建批处理文件,把上述内容复制即可(思路是先删除包含你指定IP的所有行,然后在最后一行添加即可)。 参考技术A 这个呢,你写个批处理。
@echo off
rem 写入Host
echo 192.168.1.1 XXserver >>C:\WINDOWS\system32\drivers\etc\hosts
rem 开启程序
start "软件名称" "软件地址"
exit
用这个打开软件就行了,它会在打开程序前,添加一条host定向。
让360信任这个批处理就行了。 参考技术B @echo off
echo 192.168.1.1 XXserver
>>C:\WINDOWS\system32\drivers\etc\hosts
新建记事本,键入上面内容,然后另存为bat格式 #号就不要管他了。直接加一行一样效果本回答被提问者和网友采纳 参考技术C @echo off
set stHosts=192.168.1.1 XXserver
FOR /F "eol=# tokens=1 delims=" %%i in (%SystemRoot%\system32\drivers\etc\hosts) do if "%stHosts%"=="%%i" goto end
echo %stHosts%>> %SystemRoot%\system32\drivers\etc\hosts
:end 参考技术D 为什么要批处理hosts文件?
搞个DNS服务器不行吗
以上是关于批处理修改文件名的主要内容,如果未能解决你的问题,请参考以下文章