我有一个文本文件data.txt
:
Jun/2015: 1028 Oct/2017: 2048 Jan/2010: 9654 Aug/2006: 5702 Feb/2018: 1984 Oct/2012: 7749 May/2008: 4722 Jul/2016: 4722
我需要一个BATCH脚本:
答案 0 :(得分:0)
答案 1 :(得分:0)
为了计算最小值和最大值,您可以使用以下脚本(也确定舍入均值);认为这只适用于签名的32位房间中的正整数;我们称之为stats.bat
:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set /A "IDX=0, SUM=0"
set /A "MIN=(1<<31)-1, MAX=0"
for /F "usebackq tokens=1,2 delims=: " %%K in ("%~1") do (
for /F "tokens=* delims=0" %%Z in ("%%L") do set "VAL=%%Z"
set /A "VAL+=0, IDX+=1, SUM+=VAL"
if !MIN! GTR !VAL! set /A "MIN=VAL" & set "MIN_DATE=%%K"
if !MAX! LSS !VAL! set /A "MAX=VAL" & set "MAX_DATE=%%K"
)
set /A "AVG=(2*SUM+IDX)/(2*IDX)"
echo total amount: %IDX%
echo overall sum: %SUM%
echo minimum value: %MIN% ^(%MIN_DATE%^)
echo maximum value: %MAX% ^(%MAX_DATE%^)
echo average value: %AVG% ^(rounded^)
endlocal
exit /B
要使用它,请将文本文件作为命令行参数提供:
stats.bat "\path\to\data.txt"
对于问题中包含的示例文件data.txt
,输出将如下所示:
total amount: 8 overall sum: 37609 minimum value: 1028 (Jun/2015) maximum value: 9654 (Jan/2010) average value: 4701 (rounded)
对于所有与日期相关的计算,您应该使用其他语言(如PowerShell),因为cmd
/ batch-file不支持日期数学,也不支持按日期排序。