两天现学现用for,辣眼(批量文件顺序改名)
bat吧
全部回复
仅看楼主
level 9
WyPo🍺 楼主
Set patch=D:\aa\
Set newname=bb
Set ca=.jpg
Set aa=0000
@Echo off & Cls & Setlocal Enabledelayedexpansion
Set time=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%FileFormat%
Dir "%patch%" /B >>"%~dp0%newname%%time%.txt"
For /F "Delims=eol=" %%i In ('Type "%~dp0%newname%%time%.txt"') Do (
Set /A bb=!bb!+1
If "!bb!"=="0" Set aa=000
If "!bb!"=="1" Set aa=000
If "!bb!"=="10" Set aa=00
If "!bb!"=="100" Set aa=0
If "!bb!"=="1000" Set aa=<Nul
Ren "!patch!%%i" "!newname!!aa!!bb!!ca!"
Echo.Ren "!patch!%%i" "!newname!!aa!!bb!!ca!"
)
Del /Q "%~dp0%newname%%time%.txt"
Echo.
Echo.已处理%bb%个文件
pause>nul
::算是理解了环境变量和Set特定情况下写法
::for用了整行显示,eol忽视空格划分,要加/F
::正文内容为.bat[不高兴]
2018年12月02日 10点12分 1
level 10
这样可以不写临时文件处理搜索文件。
@echo off
for /f "delims=" %%i in ('dir/d/b') do (
echo;"%%i"
)
还有就是环境变量不能直接处理感叹号,包括文件名称[狂汗]
不过可以用 endlocal 或 call 来解决[勉强]
2018年12月07日 15点12分 2
level 10
推荐在 Del /Q 加上 if exist 命令 有条件的删除某个文件。
比如:
if exist "文件" del /q "文件"
别问我是怎样学会的,又想起一些不好的回忆了[惊哭]
2018年12月07日 15点12分 3
ok,学到了,。"del..="要加eol=,有空格文件不加eol会认为是分割名字,,临时文件已经dir解决好了
2018年12月08日 06点12分
level 1
怎么用啊
2022年02月28日 14点02分 4
patch,需要批量处理的文件所在的主目录,结尾写 \ 号;newname,要取的新名字,前绰名;ca,文件格式名称,后绰名;用txt文件把全部内容保存,把txt格式改为bat格式文件,直接双击运行。几年前的代码不太推荐使用,现在回看也有的懵,建议操作前先做备份
2022年03月03日 17点03分
主要的修改对象是最顶层的三个set x=内容,,文件的文字编码是NFTS
2022年03月03日 17点03分
注意把for的"delims=eol="的"eol="去掉
2022年03月03日 17点03分
1