             result .= splitedLine[1] . SubStr(StrSpace, 1, col3MaxLen - col3RealLen)
         }
 
-        result .= " | "
-
-        if (col4RealLen > col4MaxLen)
-        {
-            result .= SubStrByByte(splitedLine[2], col4MaxLen)
-        }
-        else
-        {
-            result .= splitedLine[2]
+        if (col4MaxLen > 0)
+        {
+            result .= " | "
+
+            col4RealLen := StrLen(RegExReplace(splitedLine[2], "[^\x00-\xff]", "`t`t"))
+
+            if (col4RealLen > col4MaxLen)
+            {
+                result .= SubStrByByte(splitedLine[2], col4MaxLen)
+            }
+            else
+            {
+                result .= splitedLine[2]
+            }
         }
 
         result .= "`r`n"


    result =

    /*
    Loop, Parse, text, `n, `r
    {
        splitedLine := StrSplit(A_LoopField, " | ")
        col3Len := StrLen(splitedLine[3])
        col3RealLen := StrLen(RegExReplace(splitedLine[3], "[^\x00-\xff]","11"))
        if (col3RealLen > col3MaxLen)
        {
            col3MaxLen := col3RealLen
        }
    }
    */

    Loop, Parse, text, `n, `r
    {

        return
    }

    fileContent := "var RunZCmdTool = '"
    fileContent .= StrReplace(A_ScriptDir, "\", "\\") "\\RunZ.exe "
            .  StrReplace(A_ScriptDir, "\", "\\") "\\Core\\RunZCmdTool.ahk'`n"

    jsText =
(
var ws = new ActiveXObject("WScript.Shell")

var arg = ""
for (var i = 0; i < WScript.Arguments.Count(); i++)
{
    arg += " \"" + WScript.Arguments(i) + "\" "
}

ws.Run(RunZCmdTool + arg)
