#NoTrayIcon #Include #Include #Include ;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 ------------------------------