887 lines
27 KiB
AutoIt
887 lines
27 KiB
AutoIt
#NoTrayIcon
|
|
#Include <File.au3>
|
|
#Include <FileConstants.au3>
|
|
#Include <Array.au3>
|
|
|
|
;Modification:
|
|
; 2016/06/19 Change /SRE Function Description.
|
|
; 2016/09/10 Add _Execute Function.
|
|
; 2016/10/27 ADD ATT/ACT operation to _CMD Function.
|
|
|
|
|
|
Func _WriteLog()
|
|
If $CMDLINE[0] < 3 Then
|
|
Local $Tips = @CRLF & "Parameters Format Error !" & @CRLF & @CRLF _
|
|
& "CMD:" & @TAB & "/LOG LogPath LogMsg [Flag = -1]" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "LogPath:" & @TAB & "Path of the file to write to." & @CRLF _
|
|
& "LogMsg:" & @TAB & @TAB & "Message to be written to the log file." & @CRLF _
|
|
& "Flag(Optional):" & @CRLF _
|
|
& @TAB & "Flag = -1 (Default) LogMsg will be written to the end of file." & @CRLF _
|
|
& @TAB & "Otherwise LogMsg will be written to beginning of file." & @CRLF & @CRLF _
|
|
& "Use /F:FileName to set the ""LogMsg"" as the contents of a file." & @CRLF & @CRLF
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
ElseIf $CMDLINE[0] = 3 Then
|
|
Local $LogPath = $CMDLINE[2]
|
|
Local $LogMsg = $CMDLINE[3]
|
|
Local $Flag = -1
|
|
If StringLeft($LogMsg,3) = "/F:" Then
|
|
Local $SrcName = StringTrimLeft($LogMsg, 3)
|
|
Local $SrcFile = FileOpen($SrcName)
|
|
$LogMsg = FileRead($SrcFile)
|
|
FileClose($SrcFile)
|
|
EndIf
|
|
Else
|
|
Local $LogPath = $CMDLINE[2]
|
|
Local $LogMsg = $CMDLINE[3]
|
|
Local $Flag = $CMDLINE[4]
|
|
If StringLeft($LogMsg,3) = "/F:" Then
|
|
Local $SrcName = StringTrimLeft($LogMsg, 3)
|
|
Local $SrcFile = FileOpen($SrcName)
|
|
$LogMsg = FileRead($SrcFile)
|
|
FileClose($SrcFile)
|
|
EndIf
|
|
EndIf
|
|
Local $RET = _FileWriteLog($LogPath, $LogMsg, $Flag)
|
|
FileOpen($LogPath, 1)
|
|
FileClose($LogPath)
|
|
Exit $RET
|
|
EndFunc
|
|
|
|
|
|
|
|
Func _DeleteLine()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/DEL FileName LineNum" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "File name." & @CRLF _
|
|
& "LineNum:" & @TAB & "Line number." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 3 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $File = $CMDLINE[2]
|
|
Local $Line = $CMDLINE[3]
|
|
_FileWriteToLine($File, $Line, "", True)
|
|
Exit 0
|
|
EndIf
|
|
Exit 0
|
|
EndFunc
|
|
|
|
|
|
|
|
Func _WriteLine()
|
|
If $CMDLINE[0] < 4 Then
|
|
Local $Tips = @CRLF & "Parameters Format Error !" & @CRLF & @CRLF _
|
|
& "CMD:" & @TAB & "/INS FilePath LineNum Text [OverWrite = False]" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FilePath:" & @TAB & "Path of the file to write to." & @CRLF _
|
|
& "LineNum:" & @TAB & "The line number to write to." & @CRLF _
|
|
& "Text:" & @TAB & @TAB & "The text to write." & @CRLF _
|
|
& "OverWrite(Optional):" & @CRLF _
|
|
& @TAB & "True - Will overwrite the old line." & @CRLF _
|
|
& @TAB & "False - (Default) Will not overwrite." & @CRLF & @CRLF _
|
|
& "Use /F:FileName.txt to set the ""Text"" as the contents of a file." & @CRLF & @CRLF
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
ElseIf $CMDLINE[0] = 4 Then
|
|
Local $FilePath = $CMDLINE[2]
|
|
Local $Line = $CMDLINE[3]
|
|
Local $Text = $CMDLINE[4]
|
|
Local $OverWrite = False
|
|
If StringLeft($Text,3) = "/F:" Then
|
|
Local $SrcName = StringTrimLeft($Text, 3)
|
|
Local $SrcFile = FileOpen($SrcName)
|
|
$Text = FileRead($SrcFile)
|
|
FileClose($SrcFile)
|
|
EndIf
|
|
Else
|
|
Local $FilePath = $CMDLINE[2]
|
|
Local $Line = $CMDLINE[3]
|
|
Local $Text = $CMDLINE[4]
|
|
$OverWrite = $CMDLINE[5]
|
|
If StringLeft($Text,3) = "/F:" Then
|
|
Local $SrcName = StringTrimLeft($Text, 3)
|
|
Local $SrcFile = FileOpen($SrcName)
|
|
$Text = FileRead($SrcFile)
|
|
FileClose($SrcFile)
|
|
EndIf
|
|
EndIf
|
|
Local $RET = _FileWriteToLine ( $FilePath, $Line, $Text, $OverWrite )
|
|
Exit $RET
|
|
EndFunc
|
|
|
|
|
|
|
|
Func _ReplaceString()
|
|
If $CMDLINE[0] < 4 Then
|
|
Local $Tips = @CRLF & "Parameters Format Error !" & @CRLF & @CRLF _
|
|
& "CMD:" & @TAB & "/REP FileName SrcString DstString [Case = 0] [Occurance = 1]" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Full path of the file." & @CRLF _
|
|
& "SrcString:" & @TAB & "The string to evaluate." & @CRLF _
|
|
& "DstString:" & @TAB & "The text to write." & @CRLF _
|
|
& "Case(Optional):" & @CRLF _
|
|
& @TAB & "0 -- (Default) Not case sensitive." & @CRLF _
|
|
& @TAB & "1 -- Case sensitive." & @CRLF _
|
|
& "Occurance(Optional):" & @CRLF _
|
|
& @TAB & "0 -- Only the first occurrence is replaced." & @CRLF _
|
|
& @TAB & "1 -- (Default) All occurrences are replaced." & @CRLF & @CRLF _
|
|
& "Use /F:FileName to set ""SrcString"" and ""DstString"" as the contents of a file." & @CRLF & @CRLF
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
ElseIf $CMDLINE[0] = 4 Then
|
|
Local $Path = $CMDLINE[2]
|
|
Local $SrcStr = $CMDLINE[3]
|
|
Local $DstStr = $CMDLINE[4]
|
|
Local $Case = 0
|
|
Local $Occur = 1
|
|
If StringLeft($SrcStr, 3) = "/F:" Then
|
|
Local $SrcName = StringTrimLeft($SrcStr, 3)
|
|
Local $SrcFile = FileOpen($SrcName)
|
|
$SrcStr = FileRead($SrcFile)
|
|
FileClose($SrcFile)
|
|
EndIf
|
|
If StringLeft($DstStr, 3) = "/F:" Then
|
|
Local $SrcName1 = StringTrimLeft($DstStr, 3)
|
|
Local $SrcFile1 = FileOpen($SrcName1)
|
|
$DstStr = FileRead($SrcFile1)
|
|
FileClose($SrcFile1)
|
|
EndIf
|
|
ElseIf $CMDLINE[0] = 5 Then
|
|
Local $Path = $CMDLINE[2]
|
|
Local $SrcStr = $CMDLINE[3]
|
|
Local $DstStr = $CMDLINE[4]
|
|
Local $Case = $CMDLINE[5]
|
|
Local $Occur = 1
|
|
If StringLeft($SrcStr, 3) = "/F:" Then
|
|
Local $SrcName = StringTrimLeft($SrcStr, 3)
|
|
Local $SrcFile = FileOpen($SrcName)
|
|
$SrcStr = FileRead($SrcFile)
|
|
FileClose($SrcFile)
|
|
EndIf
|
|
If StringLeft($DstStr, 3) = "/F:" Then
|
|
Local $SrcName1 = StringTrimLeft($DstStr, 3)
|
|
Local $SrcFile1 = FileOpen($SrcName1)
|
|
$DstStr = FileRead($SrcFile1)
|
|
FileClose($SrcFile1)
|
|
EndIf
|
|
Else
|
|
Local $Path = $CMDLINE[2]
|
|
Local $SrcStr = $CMDLINE[3]
|
|
Local $DstStr = $CMDLINE[4]
|
|
Local $Case = $CMDLINE[5]
|
|
Local $Occur = $CMDLINE[6]
|
|
If StringLeft($SrcStr, 3) = "/F:" Then
|
|
Local $SrcName = StringTrimLeft($SrcStr, 3)
|
|
Local $SrcFile = FileOpen($SrcName)
|
|
$SrcStr = FileRead($SrcFile)
|
|
FileClose($SrcFile)
|
|
EndIf
|
|
If StringLeft($DstStr, 3) = "/F:" Then
|
|
Local $SrcName1 = StringTrimLeft($DstStr, 3)
|
|
Local $SrcFile1 = FileOpen($SrcName1)
|
|
$DstStr = FileRead($SrcFile1)
|
|
FileClose($SrcFile1)
|
|
EndIf
|
|
EndIf
|
|
Local $RET = _ReplaceStringInFile ( $Path, $SrcStr, $DstStr, $Case, $Occur )
|
|
ConsoleWrite("Return Code: " & $RET & @CRLF)
|
|
Exit 0
|
|
EndFunc
|
|
|
|
|
|
|
|
Func _LineNum()
|
|
Global $Tips_Lin = @CRLF & "CMD:" & @TAB & "/NUM FileName [String] [Case=N]" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename of the file to search for." & @CRLF _
|
|
& "String:" & @TAB & @TAB & "[Optional] The string to search in the file." & @CRLF _
|
|
& @TAB & @TAB & "If not define ""String"", return the count of lines of the file" & @CRLF _
|
|
& "Case:" & @TAB & @TAB & "Flag to indicate if the operations should be case sensitive. Y/N." & @CRLF & @CRLF
|
|
|
|
Switch $CMDLINE[0]
|
|
Case 1
|
|
ConsoleWrite($Tips_Lin)
|
|
Exit 0
|
|
Case 2
|
|
If $CMDLINE[2] = "/?" Then
|
|
ConsoleWrite($Tips_Lin)
|
|
Exit 0
|
|
Else
|
|
Local $File = $CMDLINE[2]
|
|
;Local $String = ''
|
|
Local $CaseSense = 0
|
|
EndIf
|
|
Case 3
|
|
Local $File = $CMDLINE[2]
|
|
Local $String = $CMDLINE[3]
|
|
Local $CaseSense = 0
|
|
Case Else
|
|
Local $File = $CMDLINE[2]
|
|
Local $String = $CMDLINE[3]
|
|
Local $CaseSense = $CMDLINE[4]
|
|
If $CaseSense = "Y" Then
|
|
$CaseSense = 1
|
|
ElseIf $CaseSense = "N" Then
|
|
$CaseSense = 0
|
|
Else
|
|
$CaseSense = 0
|
|
EndIf
|
|
EndSwitch
|
|
If Not IsDeclared("String") Then
|
|
Local $RET = _FileCountLines ($File)
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit $RET
|
|
Else
|
|
;Local $Array = ""
|
|
;_FileReadToArray($File, $Array)
|
|
;Local $Index = _ArrayFindAll($Array, $String, 0, 0, 0, 1)
|
|
;Local $Count = StringLen(_ArrayToString($Index, ''))
|
|
Local $Ocurrences = 0
|
|
Local $fOpen = FileOpen($File,0)
|
|
Local $Lines = _FileCountLines($File)
|
|
$Lines = $Lines + 1
|
|
Local $LineArray[$Lines]
|
|
Local $StringArray[$Lines]
|
|
ConsoleWrite("-->File: " & $File & @CRLF)
|
|
ConsoleWrite("-->String: " & $String & @CRLF)
|
|
For $Loop1 = 1 To $Lines Step 1
|
|
Local $fString = FileReadLine($fOpen, $Loop1)
|
|
If StringInStr($fString, $String, $CaseSense) > 0 Then
|
|
$Ocurrences += 1
|
|
$LineArray[$Ocurrences] = $Loop1
|
|
$StringArray[$Ocurrences] = $fString
|
|
EndIf
|
|
Next
|
|
ConsoleWrite("-->Ocurrence: " & $Ocurrences & @CRLF)
|
|
For $Loop2 = 1 To $Ocurrences Step 1
|
|
ConsoleWrite($LineArray[$Loop2] & @TAB & $StringArray[$Loop2] & @CRLF)
|
|
Next
|
|
FileClose($fOpen)
|
|
Exit 0
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
|
|
Func _GetLine()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/FRL FileName LineNum" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF _
|
|
& "LineNum:" & @TAB & "Number of line to read." & @CRLF _
|
|
& @TAB & "Use -[Number] to read the file from the end, etc -8" & @CRLF _
|
|
& @TAB & "Use [Number1]-[Number2] to read line Number1 to line Number2, etc 2-5" & @CRLF
|
|
Switch $CMDLINE[0]
|
|
Case 1 To 2
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Case 3
|
|
Local $File = $CMDLINE[2]
|
|
Local $Line = $CMDLINE[3]
|
|
Case Else
|
|
Local $File = $CMDLINE[2]
|
|
Local $Line = $CMDLINE[3]
|
|
EndSwitch
|
|
Local $Lines = _FileCountLines($File)
|
|
If $Line > $Lines Then
|
|
ConsoleWrite("Error: Parameter ""Line"" out of range." & @CRLF)
|
|
Exit 255
|
|
ElseIf StringLeft($Line, 1) = "-" Then
|
|
$Line = Int(StringTrimLeft($Line, 1))
|
|
$Line = $Lines - $Line + 1
|
|
Local $fOpen = FileOpen($File)
|
|
Local $RET = FileReadLine($fOpen, $Line)
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit 0
|
|
ElseIf StringInStr($Line, "-") <> 0 And StringLeft($Line, 1) <> "-" Then
|
|
$Line = StringSplit($Line, "-")
|
|
If IsArray($Line) Then
|
|
Local $Line_Start = $Line[1]
|
|
Local $Line_End = $Line[2]
|
|
For $i = $Line_Start To $Line_End Step 1
|
|
Local $fOpen = FileOpen($File)
|
|
Local $RET = FileReadLine($fOpen, $i)
|
|
ConsoleWrite($RET&@CRLF)
|
|
If $i <> $Line_End Then ConsoleWrite(@CRLF)
|
|
Next
|
|
Exit 0
|
|
EndIf
|
|
Else
|
|
Local $fOpen = FileOpen($File)
|
|
Local $RET = FileReadLine($fOpen, $Line)
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit 0
|
|
EndIf
|
|
Exit 0
|
|
EndFunc
|
|
|
|
|
|
Func _CountLine()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/FCL FileName" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $sFilePath = $CMDLINE[2]
|
|
Local $RET = _FileCountLines( $sFilePath )
|
|
ConsoleWrite($RET &@CRLF)
|
|
Exit 0
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _GetAttrib()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/FGA FileName" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF & @CRLF _
|
|
& "Return Code:" & @CRLF _
|
|
& "A code string representing a file's attributes." & @CRLF _
|
|
& " R = READONLY" & @CRLF _
|
|
& " A = ARCHIVE" & @CRLF _
|
|
& " S = SYSTEM" & @CRLF _
|
|
& " H = HIDDEN" & @CRLF _
|
|
& " N = NORMAL" & @CRLF _
|
|
& " D = DIRECTORY" & @CRLF _
|
|
& " O = OFFLINE" & @CRLF _
|
|
& " C = COMPRESSED (NTFS Compression, Not ZIP Compression)" & @CRLF _
|
|
& " T = TEMPORARY" & @CRLF _
|
|
& " X = EFS ENCRYPTION" & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $sFilePath = $CMDLINE[2]
|
|
Local $RET = FileGetAttrib( $sFilePath )
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit 0
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _SetAttrib()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/FSA FileName ""+-RASHNOT"" " & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "The path of the file(s) to set, (* and ? wildcards accepted)" & @CRLF _
|
|
& "+-RASHNOT:" & @TAB & "Attribute(s) to set/clear. e.g. ""+A"", ""+RA-SH"""& @CRLF _
|
|
& " A = ARCHIVE" & @CRLF _
|
|
& " S = SYSTEM" & @CRLF _
|
|
& " H = HIDDEN" & @CRLF _
|
|
& " N = NORMAL" & @CRLF _
|
|
& " O = OFFLINE" & @CRLF _
|
|
& " R = READONLY" & @CRLF _
|
|
& " T = TEMPORARY" & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 3 Then
|
|
ConsoleWrite( $Tips )
|
|
Exit 0
|
|
Else
|
|
Local $FileSet = $CMDLINE[2]
|
|
Local $Att = $CMDLINE[3]
|
|
Local $RET = FileSetAttrib( $FileSet, $Att )
|
|
If $RET = 1 Then
|
|
ConsoleWrite("Success")
|
|
Exit 0
|
|
Else
|
|
ConsoleWrite("Error")
|
|
Exit 0
|
|
EndIf
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _GetEncoding()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/ENC FileName" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $sFilePath = $CMDLINE[2]
|
|
Local $ENC = FileGetEncoding( $sFilePath )
|
|
Switch $ENC
|
|
Case $FO_UTF16_LE
|
|
Local $RET = "UTF16 Little Endian"
|
|
Case $FO_UTF16_BE
|
|
Local $RET = "UTF16 Big Endian"
|
|
Case $FO_UTF8
|
|
Local $RET = "UTF8 With BOM"
|
|
Case $FO_UTF8_NOBOM
|
|
Local $RET = "UTF8 Without BOM"
|
|
Case $FO_ANSI
|
|
Local $RET = "ANSI"
|
|
Case Else
|
|
Local $RET = "ERROR"
|
|
EndSwitch
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit 0
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _GetSize()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/SIZ FileName" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $sFilePath = $CMDLINE[2]
|
|
Local $Size = FileGetSize( $sFilePath )
|
|
If $Size <= 1024 Then
|
|
ConsoleWrite($Size & " Bytes")
|
|
Exit 0
|
|
ElseIf $Size <= 1048576 Then
|
|
Local $RET = Int($Size/1024)
|
|
ConsoleWrite($RET & " KB")
|
|
Exit 0
|
|
Else
|
|
Local $RET = Int($Size/1048576)
|
|
ConsoleWrite($RET & " MB")
|
|
Exit 0
|
|
EndIf
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _GetTime()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/FGT FileName" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $sFilePath = $CMDLINE[2]
|
|
Local $ModifiedTime = FileGetTime( $sFilePath, $FT_MODIFIED, $FT_STRING )
|
|
Local $CreatedTime = FileGetTime( $sFilePath, $FT_CREATED, $FT_STRING )
|
|
Local $AccessedTime = FileGetTime( $sFilePath, $FT_ACCESSED, $FT_STRING )
|
|
Local $RET = "CreatedTime: " & @TAB & $CreatedTime & @CRLF _
|
|
& "LastModified: " & @TAB & $ModifiedTime & @CRLF _
|
|
& "LastAccessed: " & @TAB & $AccessedTime & @CRLF
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit 0
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _FileSetTime()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/FST FileName Time Type" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF _
|
|
& "Time:" & @TAB & @TAB & "The new time to set in the format ""YYYYMMDDHHMMSS""" & @CRLF _
|
|
& @TAB & @TAB & "If the time is blank then the current time is used." & @CRLF _
|
|
& "Type:" & @TAB & @TAB & "MODIFIED, CREATED, ACCESSED." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 4 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $FileSet = $CMDLINE[2]
|
|
Local $Time = $CMDLINE[3]
|
|
Local $Type = $CMDLINE[4]
|
|
Switch $Type
|
|
Case "MODIFIED"
|
|
$Type = $FT_MODIFIED
|
|
Case "CREATED"
|
|
$Type = $FT_CREATED
|
|
Case "ACCESSED"
|
|
$Type = $FT_ACCESSED
|
|
Case Else
|
|
ConsoleWrite("Parameters Error." & @CRLF)
|
|
Exit 0
|
|
EndSwitch
|
|
Local $RET = FileSetTime( $FileSet, $Time, $Type )
|
|
If $RET = 1 Then
|
|
ConsoleWrite("Successed" &@CRLF)
|
|
Exit 0
|
|
Else
|
|
ConsoleWrite("Failed" &@CRLF)
|
|
Exit 0
|
|
EndIf
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _GetVersion()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/VER FileName" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
Local $sFilePath = $CMDLINE[2]
|
|
|
|
Local $FILEVERSION = FileGetVersion( $sFilePath, $FV_FILEVERSION )
|
|
Local $FILEDESCRIPTION = FileGetVersion( $sFilePath, $FV_FILEDESCRIPTION )
|
|
Local $COMMENTS = FileGetVersion( $sFilePath, $FV_COMMENTS )
|
|
Local $INTERNALNAME = FileGetVersion( $sFilePath, $FV_INTERNALNAME )
|
|
Local $COMPANYNAME = FileGetVersion( $sFilePath, $FV_COMPANYNAME )
|
|
Local $LEGALCOPYRIGHT = FileGetVersion( $sFilePath, $FV_LEGALCOPYRIGHT )
|
|
Local $LEGALTRADEMARKS = FileGetVersion( $sFilePath, $FV_LEGALTRADEMARKS )
|
|
Local $ORIGINALFILENAME = FileGetVersion( $sFilePath, $FV_ORIGINALFILENAME )
|
|
Local $PRODUCTNAME = FileGetVersion( $sFilePath, $FV_PRODUCTNAME )
|
|
Local $PRODUCTVERSION = FileGetVersion( $sFilePath, $FV_PRODUCTVERSION )
|
|
|
|
Local $RET = "FileName: " & $sFilePath & @CRLF _
|
|
& "----- Version Information -----" & @CRLF _
|
|
& "File_Version:" & @TAB & @TAB & $FILEVERSION & @CRLF _
|
|
& "File_Description:" & @TAB & $FILEDESCRIPTION & @CRLF _
|
|
& "Comments:" & @TAB & @TAB & $COMMENTS & @CRLF _
|
|
& "Internal_Name:" & @TAB & @TAB & $INTERNALNAME & @CRLF _
|
|
& "Company_Name:" & @TAB & @TAB & $COMPANYNAME & @CRLF _
|
|
& "Legal_Copyright:" & @TAB & $LEGALCOPYRIGHT & @CRLF _
|
|
& "Legal_Trademarks:" & @TAB & $LEGALTRADEMARKS & @CRLF _
|
|
& "Original_File_Name:" & @TAB & $ORIGINALFILENAME & @CRLF _
|
|
& "Product_Name:" & @TAB & @TAB & $PRODUCTNAME & @CRLF _
|
|
& "Product_Version:" & @TAB & $PRODUCTVERSION & @CRLF
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit 0
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
Func _Read()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/RED FileName [Count]" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename." & @CRLF _
|
|
& "Count:" &@TAB&@TAB& "A number of characters to read in the file." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite( $Tips )
|
|
Exit 0
|
|
ElseIf $CMDLINE[0] = 2 Then
|
|
Local $sFilePath = $CMDLINE[2]
|
|
Local $RET = FileRead( $sFilePath )
|
|
ConsoleWrite( $RET )
|
|
Exit 0
|
|
Else
|
|
Local $sFilePath = $CMDLINE[2]
|
|
Local $Count = $CMDLINE[3]
|
|
Local $RET = FileRead( $sFilePath, $Count )
|
|
ConsoleWrite( $RET )
|
|
Exit 0
|
|
EndIf
|
|
EndFunc
|
|
|
|
|
|
|
|
|
|
;Func _FileSRER2Line($File, $pattern = '', $replace = '', $flag = 1, $SRE = 0, $CR = 1, $Write = '')
|
|
Func _FileSRER2Line()
|
|
Global $Tips_SRE = @CRLF & "CMD:" & @TAB & "/SRE FileName Pattern Replace Flag=1 SRE=1 CR=1 Write" & @CRLF & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "FileName:" & @TAB & "Path and filename of the file to modify." & @CRLF _
|
|
& "Pattern:" & @TAB & "String to search for. If NULL, delete all blank lines." & @CRLF _
|
|
& "Replace:" & @TAB & "String to write. If NULL, delete the lines contain ""Pattern""." & @CRLF _
|
|
& "Flag:" _
|
|
& @TAB & @TAB & "Flag=1: Line must meet the ""Pattern""." & @CRLF _
|
|
& @TAB & @TAB & "Flag=0: Line contain the ""Pattern""." & @CRLF _
|
|
& "SRE:" _
|
|
& @TAB & @TAB & "SRE=1: Use regular expressions." & @CRLF _
|
|
& @TAB & @TAB & "SRE=0: Not use regular expressions." & @CRLF _
|
|
& "CR:" _
|
|
& @TAB & @TAB & "CR=1: Recognition @CRLF(Default)." & @CRLF _
|
|
& @TAB & @TAB & "CR=0: Recognition @LF." & @CRLF _
|
|
& "Write:" _
|
|
& @TAB & @TAB & "NULL: Write the source file." & @CRLF _
|
|
& @TAB & @TAB & "Not NULL: Write the specified file." & @CRLF & @CRLF
|
|
; & @TAB & @TAB & "0: Echo only, not write." & @CRLF _
|
|
Switch $CMDLINE[0]
|
|
Case 1
|
|
ConsoleWrite($Tips_SRE)
|
|
Exit 0
|
|
Case 2
|
|
If $CMDLINE[2] = "/?" Then
|
|
ConsoleWrite($Tips_SRE)
|
|
Exit 0
|
|
Else
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = ''
|
|
Local $replace = ''
|
|
Local $flag = 1
|
|
Local $SRE = 0
|
|
Local $CR = 1
|
|
Local $Write = ''
|
|
EndIf
|
|
Case 3
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = $CMDLINE[3]
|
|
Local $replace = ''
|
|
Local $flag = 1
|
|
Local $SRE = 0
|
|
Local $CR = 1
|
|
Local $Write = ''
|
|
Case 4
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = $CMDLINE[3]
|
|
Local $replace = $CMDLINE[4]
|
|
Local $flag = 1
|
|
Local $SRE = 0
|
|
Local $CR = 1
|
|
Local $Write = ''
|
|
Case 5
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = $CMDLINE[3]
|
|
Local $replace = $CMDLINE[4]
|
|
Local $flag = $CMDLINE[5]
|
|
Local $SRE = 0
|
|
Local $CR = 1
|
|
Local $Write = ''
|
|
Case 6
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = $CMDLINE[3]
|
|
Local $replace = $CMDLINE[4]
|
|
Local $flag = $CMDLINE[5]
|
|
Local $SRE = $CMDLINE[6]
|
|
Local $CR = 1
|
|
Local $Write = ''
|
|
Case 7
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = $CMDLINE[3]
|
|
Local $replace = $CMDLINE[4]
|
|
Local $flag = $CMDLINE[5]
|
|
Local $SRE = $CMDLINE[6]
|
|
Local $CR = $CMDLINE[7]
|
|
Local $Write = ''
|
|
Case 8
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = $CMDLINE[3]
|
|
Local $replace = $CMDLINE[4]
|
|
Local $flag = $CMDLINE[5]
|
|
Local $SRE = $CMDLINE[6]
|
|
Local $CR = $CMDLINE[7]
|
|
Local $Write = $CMDLINE[8]
|
|
Case Else
|
|
Local $File = $CMDLINE[2]
|
|
Local $pattern = $CMDLINE[3]
|
|
Local $replace = $CMDLINE[4]
|
|
Local $flag = $CMDLINE[5]
|
|
Local $SRE = $CMDLINE[6]
|
|
Local $CR = $CMDLINE[7]
|
|
Local $Write = $CMDLINE[8]
|
|
EndSwitch
|
|
Local $sFile = String(FileRead($File)), $strqhz = '', $extended = 0, $sRER, $strZY, $CRF = ''
|
|
If $CR = 0 Then $CRF = '?'
|
|
If $pattern = '' Then
|
|
$sRER = StringRegExpReplace(@CRLF & $sFile, '\r' & $CRF & '\n(?=\r' & $CRF & '\n)|\r' & $CRF & '\n$', '')
|
|
Else
|
|
If $SRE = 0 Then
|
|
$strZY = '(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)'
|
|
$pattern = StringRegExpReplace($pattern, $strZY, '\\$1')
|
|
$replace = StringRegExpReplace($replace, $strZY, '\\$1')
|
|
EndIf
|
|
If $flag = 0 Then $strqhz = '\V*'
|
|
Local $patternWZ = $strqhz & $pattern & $strqhz
|
|
$pattern = '(\r' & $CRF & '\n)' & $patternWZ & '(?=\r' & $CRF & '\n)|\r' & $CRF & '\n' & $patternWZ & '$'
|
|
If $replace <> '' Then
|
|
$sRER = StringRegExpReplace(@CRLF & $sFile, $pattern, '${1}' & $replace)
|
|
Else
|
|
$sRER = StringRegExpReplace(@CRLF & $sFile, $pattern, '')
|
|
EndIf
|
|
EndIf
|
|
$extended = $extended + @extended
|
|
$sRER = StringRegExpReplace($sRER, '^\r' & $CRF & '\n', '')
|
|
If $Write = '' And $Write <> '0' Then
|
|
$sTmp = FileOpen($File, 2)
|
|
FileWrite($sTmp, $sRER)
|
|
FileClose($sTmp)
|
|
ElseIf $Write <> '' Then
|
|
$sTmp = FileOpen($Write, 2)
|
|
FileWrite($sTmp, $sRER)
|
|
FileClose($sTmp)
|
|
EndIf
|
|
SetExtended($extended)
|
|
ConsoleWrite("Return Code: " & @extended & @CRLF)
|
|
Return $sRER
|
|
Exit 0
|
|
EndFunc ;==>_FileSRER2Line
|
|
|
|
|
|
;============================== Misc Item ==============================
|
|
|
|
|
|
Func _Sleep()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/SLP Delay" & @CRLF _
|
|
& "Usage:" & @TAB & "Pause execution for a while." & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "Delay: Amount of time to pause (in milliseconds)." & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
EndIf
|
|
Sleep($CMDLINE[2])
|
|
Exit 0
|
|
EndFunc
|
|
|
|
|
|
Func _Beep()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/BEP [Frequency=500] [Duration=1000]" & @CRLF _
|
|
& "Usage:" & @TAB & "Play back a beep to the user." & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "Frequency:" & @TAB & "The frequency of the beep in hertz. 37~32767 (0x25~0x7FFF)." & @CRLF _
|
|
& "Duration:" & @TAB & "The length of the beep in milliseconds." & @CRLF
|
|
Local $Frequency = 500
|
|
Local $Duration = 1000
|
|
If $CMDLINE[0] >= 2 Then
|
|
If $CMDLINE[2] = "/?" Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
$Frequency = $CMDLINE[2]
|
|
EndIf
|
|
EndIf
|
|
If $CMDLINE[0] >= 3 Then $Duration = $CMDLINE[3]
|
|
Beep($Frequency, $Duration)
|
|
Exit 0
|
|
EndFunc
|
|
|
|
|
|
Func _Random()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/RND Min Max" & @CRLF _
|
|
& "Usage:" & @TAB & "Generate a pseudo-random integer-type number." & @CRLF _
|
|
& "Parameters:" & @CRLF _
|
|
& "Min The smallest number to be generated. (Default=0.)" & @CRLF _
|
|
& "Max The largest number to be generated. (Default=1.)" & @CRLF
|
|
Local $Min = 0
|
|
Local $Max = 1
|
|
Local $Flag = 1
|
|
If $CMDLINE[0] >= 2 Then
|
|
If $CMDLINE[2] = "/?" Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
$Min = $CMDLINE[2]
|
|
EndIf
|
|
EndIf
|
|
If $CMDLINE[0] >= 3 Then $Max = $CMDLINE[3]
|
|
Local $RET = Random($Min, $Max, $Flag)
|
|
ConsoleWrite($RET&@CRLF)
|
|
Exit($RET)
|
|
EndFunc
|
|
|
|
|
|
Func _CMD()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/CMD State" & @CRLF _
|
|
& "Usage:" & @TAB & "Change state of current console window." & @CRLF & @CRLF _
|
|
& "State:" & @CRLF _
|
|
& @TAB & "ATT: Activate console window." & @CRLF _
|
|
& @TAB & "ACT: Check if console window is actived." & @CRLF _
|
|
& @TAB & "DIS: Disable console window." & @CRLF _
|
|
& @TAB & "ENA: Enable console window." & @CRLF _
|
|
& @TAB & "MIN: Minimize console window." & @CRLF _
|
|
& @TAB & "MAX: Maximize console window." & @CRLF _
|
|
& @TAB & "RES: Restore console window.(Undo MIN/MAX)" & @CRLF _
|
|
& @TAB & "NOR: Activate and display console window." & @CRLF _
|
|
& @TAB & "HIDE: Hide console window." & @CRLF _
|
|
& @TAB & "SHOW: Show console window." & @CRLF _
|
|
& @TAB & "TOP 1: Set console windows always on top." & @CRLF _
|
|
& @TAB & "TOP 0: Set console windows NOT always on top." & @CRLF
|
|
|
|
; & @TAB & "LOCK: Lock Console Window." & @CRLF _
|
|
; & @TAB & "FREE: Unlock Console Window." & @CRLF
|
|
|
|
Local $hWnd = DllCall("kernel32", "ptr", "GetConsoleWindow")
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
EndIf
|
|
Local $iState
|
|
Switch $CMDLINE[2]
|
|
Case "/?"
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Case "MIN"
|
|
$iState = @SW_MINIMIZE
|
|
Case "MAX"
|
|
$iState = @SW_MAXIMIZE
|
|
Case "RES"
|
|
$iState = @SW_RESTORE
|
|
Case "HIDE"
|
|
$iState = @SW_HIDE
|
|
Case "SHOW"
|
|
$iState = @SW_SHOW
|
|
Case "DIS"
|
|
$iState = @SW_DISABLE
|
|
Case "ENA"
|
|
$iState = @SW_ENABLE
|
|
Case "LOCK"
|
|
$iState = @SW_LOCK
|
|
Case "FREE"
|
|
$iState = @SW_UNLOCK
|
|
Case "NOR"
|
|
$iState = @SW_SHOWNORMAL
|
|
Case "ATT"
|
|
WinActivate($hWnd[0])
|
|
Exit 0
|
|
Case "ACT"
|
|
Local $RET = WinActive($hWnd[0])
|
|
ConsoleWrite("Result: " & $RET & @CRLF)
|
|
Exit 0
|
|
Case "TOP"
|
|
Local $Flag = 0
|
|
If $CMDLINE[0] >= 3 Then $Flag = $CMDLINE[3]
|
|
WinActivate($hWnd[0])
|
|
WinSetOnTop($hWnd[0], "", $Flag)
|
|
Exit 0
|
|
Case Else
|
|
ConsoleWrite("Parameters Error." & @CRLF)
|
|
Exit 0
|
|
EndSwitch
|
|
WinSetState($hWnd[0], "", $iState)
|
|
Exit 0
|
|
EndFunc
|
|
|
|
|
|
Func _Execute()
|
|
Local $Tips = @CRLF & "CMD:" & @TAB & "/EXT Expression" & @CRLF _
|
|
& "Usage:" & @TAB & "Execute an expression." & @CRLF & @CRLF
|
|
If $CMDLINE[0] < 2 Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
Else
|
|
If $CMDLINE[2] = "/?" Then
|
|
ConsoleWrite($Tips)
|
|
Exit 0
|
|
EndIf
|
|
EndIf
|
|
Local $EXP = $CMDLINE[2]
|
|
Local $RET = Execute($EXP)
|
|
ConsoleWrite($RET & @CRLF)
|
|
Exit 0
|
|
EndFunc
|
|
|
|
|
|
|
|
;============================== Misc Item ==============================
|
|
|
|
|
|
#CS ------------------------------
|
|
Func _Usage()
|
|
Local $Info = @CRLF & "V1.1 By Wayne Tan (2016.06.18)" & @CRLF & @CRLF _
|
|
& "Command:" & @CRLF _
|
|
& "/INS: Insert text to a specific line in a file." & @CRLF _
|
|
& "/DEL: Delete the specified line in a file." & @CRLF _
|
|
& "/REP: Replace a substring in a file." & @CRLF _
|
|
& "/NUM: Return the number of lines (with specified sting) of a specified file." & @CRLF _
|
|
& "/FRL: Return the text of the specified line in a specified text file." & @CRLF _
|
|
& "/FCL: Return the count of lines in the specified file." & @CRLF _
|
|
& "/FGA: Return a code string representing a file's attributes." & @CRLF _
|
|
& "/FSA: Set the attributes of one or more files/directories." & @CRLF _
|
|
& "/FGT: Return the time and date information for a file." & @CRLF _
|
|
& "/FST: Set the timestamp of one of more files." & @CRLF _
|
|
& "/ENC: Determine the text encoding used in a file." & @CRLF _
|
|
& "/RED: Read a number of characters from a file." & @CRLF _
|
|
& "/SIZ: Return the size of a file." & @CRLF _
|
|
& "/VER: Return version information stored in a file." & @CRLF _
|
|
& "/SRE: Delete(or replace) the lines by the specified string.(RegExp)" & @CRLF _
|
|
& "/LOG: Write current date, time and the specified text to a log file." & @CRLF & @CRLF _
|
|
& "Type Command to see the detail information." & @CRLF & @CRLF
|
|
ConsoleWrite($Info)
|
|
Exit 0
|
|
EndFunc
|
|
#CE ------------------------------
|
|
|