文章目录
- bat批处理命令
- win7重命名文件bat脚本
- 场景
- 方案
- 报错 存在一个重名文件,或是找不到文件
- for循环遍历目录
- 其他
- 中文乱码问题
bat批处理命令
win7重命名文件bat脚本
场景
很多文件有很多中括号等字符,想要去掉。 但是又不像linux有rename语法。
方案
新建文本文档,输入内容:
@echo off setlocal enabledelayedexpansionset"str=["for/f"delims="%%iin('dir /b *.doc *.xls) do (set "var=%%i" & ren "%%i" "!var:%str%=!") set "str=]" for /f "delims=" %%i in ('dir/b *.doc *.xls)do(set"var=%%i"&ren"%%i""!var:%str%=!")然后修改修改后缀名为.bat,复制到需要修改文件的目录,双击即可。
报错 存在一个重名文件,或是找不到文件
如果之前没见过,会感觉很莫名其妙。
其实有个隐藏规则,新文件名不能带冒号:。
如果用的是全路径,那么名称前面带有冒号就会报错。
for循环遍历目录
可使用for /f或for /r两种形式。
for /f形式需要遍历其它目录时,可在前后添加pushd/pop进行,或在dir中的匹配符前输入目录路径
for/f%%iin('dir /s /b *')do(echo%%i)for /r形式需要遍历其它目录时,只需将根目录参数%cd%替换成对应的目录路径或遍历即可
for/r%cd%%%iin(*)do(echo%%i)其他
中文乱码问题
1、改为直接用英文 # 是不是有点偷懒
2、添加chcp 65001
@echo off chcp65001msg * /time:10"任务已完成"chcp(change code page)(更改代码页),相当于设置编码格式,windows中用chcp设置编码格式:
chcp 936 # 相当于gbk编码,默认 chcp 65001 # 相当于utf8编码