如何使用Windows Batch

时间:2018-08-15 20:00:41

标签: windows sorting batch-file uniq period

我是批处理脚本的初学者,试图对文本文件进行排序并获得一年中的最高日期。尝试了不同的选项,以根据日期对文本文件进行排序并删除重复的行,最后将每年的最高期限放入另一个文本文件中。但是第一步,我无法在文本文件中按日期排序。请参见下面的示例。

示例:在file1中,我有以下几行

May-2017
Jul-2017
May-2017
Jan-2017
Sep-2018
Feb-2018

file2中的输出应为

Jul-2017
Sep-2018

1 个答案:

答案 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