# 로그 파일 경로를 입력 받습니다.
Param (
[String] $Path="C:\inetpub\logs\LogFiles\test_url\W3SVC2\u_ex110729.log"
)
# 필요한 변수들을 미리 지정 합니다.
[INT]$RECV_TOTAL="0"
[INT]$SEND_TOTAL="0"
[INT]$CS_NUM=0;
[INT]$SC_NUM=0;
$KB=1024
$MB=1024*1024
$GB=1024*1024*1024
get-content $Path | %{
#Pattern Check
if ( $_ | Select-String -Pattern "#Fields" ) {
# Fields 값에 대한 마이너스 값 처리.
[INT]$CNT=-1;
foreach ($element in $_.Split(' '))
{
if ( $element -eq "sc-bytes" ){
$SC_NUM=$CNT;
}elseif ( $element -eq "cs-bytes" ) {
$CS_NUM=$CNT;
}
$CNT+=1;
}
}
elseif ( $_ | Select-String -Pattern "^[^#]" )
{
# 실제 송/수신된 값을 Split 명령을 통해 저장합니다.
[int]$SEND_BYTE=$_.Split(' ')[$SC_NUM];
[int]$RECV_BYTE=$_.Split(' ')[$CS_NUM];
[int]$RECV_TOTAL+=$RECV_BYTE;
[int]$SEND_TOTAL+=$SEND_BYTE;
}
}
If ( $RECV_TOTAL -gt $GB ){
$RECV_TOTAL = $RECV_TOTAL / $GB
Write-Host "Total In : $RECV_TOTAL GByte"
} elseif ( $RECV_TOTAL -gt $MB){
$RECV_TOTAL = $RECV_TOTAL / $MB
Write-Host "Total In : $RECV_TOTAL MByte"
}elseif ( $RECV_TOTAL -gt $KB){
$RECV_TOTAL = $RECV_TOTAL / $KB
Write-Host "Total In : $RECV_TOTAL KByte"
}else{
Write-Host "Total In : $RECV_TOTAL Byte"
}
If ( $SEND_TOTAL -gt $GB ){
$SEND_TOTAL = $SEND_TOTAL / $GB
Write-Host "Total Out : $SEND_TOTAL GByte"
} elseif ( $SEND_TOTAL -gt $MB){
$SEND_TOTAL = $SEND_TOTAL / $MB
Write-Host "Total Out : $SEND_TOTAL MByte"
}elseif ( $SEND_TOTAL -gt $KB){
$SEND_TOTAL = $SEND_TOTAL / $KB
Write-Host "Total Out : $SEND_TOTAL KByte"
}else{
Write-Host "Total Out : $SEND_TOTAL Byte"
}