我是批处理脚本的初学者,试图对文本文件进行排序并获得一年中的最高日期。尝试了不同的选项,以根据日期对文本文件进行排序并删除重复的行,最后将每年的最高期限放入另一个文本文件中。但是第一步,我无法在文本文件中按日期排序。请参见下面的示例。
示例:在file1中,我有以下几行
May-2017
Jul-2017
May-2017
Jan-2017
Sep-2018
Feb-2018
file2中的输出应为
Jul-2017
Sep-2018
答案 0 :(得分:1)
这类问题通常被否决并关闭。 StackOverflow不是免费的代码编写服务。您必须首先努力为自己编写解决方案。
尽管在这种情况下,我没有做任何例外,尽管我没有做出任何努力解释代码...
@echo off
setlocal EnableDelayedExpansion
set "i=0"
for %%a in (Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec) do (
set /A "Mon[%%a]=i+=1"
set "Mon[!i!]=%%a"
)
for /F "tokens=1,2 delims=-" %%a in (file1.txt) do (
set /A "c=(Year[%%b]-Mon[%%a]>>31)+1,Year[%%b]=Year[%%b]*c+Mon[%%a]*^!c"
)
for /F "tokens=2,3 delims=[]=" %%a in ('set Year[') do echo !Mon[%%b]!-%%a