如何在dir命令中获取姓氏文件名?

时间:2018-11-16 04:21:43

标签: batch-file

我有一个日志文件夹,文件名称如下:

number.txt (例如:1.txt 3.txt 55.txt ...

名称(数字)不一定意味着它是最新日期。

我想编写一个批处理脚本(.bat),该脚本将获得最大的文件编号,并使用下一个编号创建一个新的文本文件  (如果最大文件号是X,我想创建一个名称为X + 1的新文本文件)

例如:

假设我们在日志文件夹中有这些文件:

1.txt 
5.txt
99.txt

运行脚本(.bat)后,需要创建一个新文件100.txt

我该怎么办?

2 个答案:

答案 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,即可查看有关使用命令的帮助。