我有一个日志文件夹,文件名称如下:
number.txt
(例如:1.txt 3.txt 55.txt ...
)
名称(数字)不一定意味着它是最新日期。
我想编写一个批处理脚本(.bat
),该脚本将获得最大的文件编号,并使用下一个编号创建一个新的文本文件
(如果最大文件号是X,我想创建一个名称为X + 1的新文本文件)
例如:
假设我们在日志文件夹中有这些文件:
1.txt
5.txt
99.txt
运行脚本(.bat)后,需要创建一个新文件100.txt
我该怎么办?
答案 0 :(得分:3)
“我该怎么办?” 在这里不是有效的问题...但是,我是这样进行的:
@echo off
for %%i in (*.txt) do set /A "i=%%~Ni-next+1,next+=((i>>31)+1)*i"
rem/>%next%.txt
答案 1 :(得分:2)
我真的不支持非主题性问题,但这确实不是火箭科学:
@echo off
setlocal enabledelayedexpansion
set cnt=0
for %%i in (*.txt) do (
set "num=%%~ni"
if !num! GTR !cnt! set cnt=!num!
)
set /a newfile=cnt+1
type nul > %newfile%.txt
这真的很简单。我们将计数器设置为0(cnt=0
)。
浏览所有文件,并仅使用令牌中的名称(%%~ni
)删除扩展名,因此我们只剩下将其分配给变量num=%%~ni
的数字。
然后我们将文件编号与计数器匹配,if
文件编号大于计数器,我们set
将计数器编号设为相同的值,直到循环到最高编号,然后只需将该值+1设为type nul > newnumber.txt
在for /?
终端窗口中,只需运行if /?
,set /?
,setlocal /?
和cmd.exe
,即可查看有关使用命令的帮助。