Execute the msConvert tool on Windows operating systems.

    :param filelocation: input file path
    :param args: str() or list(), msConvert arguments for details see the
        msConvert help below.
    :param outdir: path of the output directory
    :param filters: str() or list(), specify additional parameters and filters,
        for details see the msConvert help below.
    :param executable: must specify the complete file path of the msConvert.exe
        if its location is not in the ``PATH`` environment variable.

def execute(filelocation, args, outdir, filters=None,
            executable='msConvert.exe'):
    """Execute the msConvert tool on Windows operating systems.

    :param filelocation: input file path
    :param args: str() or list(), msConvert arguments for details see the
        msConvert help below.
    :param outdir: path of the output directory
    :param filters: str() or list(), specify additional parameters and filters,
        for details see the msConvert help below.
    :param executable: must specify the complete file path of the msConvert.exe
        if its location is not in the ``PATH`` environment variable.
    """

    procArgs = [executable, filelocation]
    procArgs.extend(aux.toList(args))
    if filters is not None:
        for arg in aux.toList(filters):
            procArgs.extend(['--filter', arg])
    procArgs.extend(['-o', outdir])

    ## run it ##
    proc = subprocess.Popen(procArgs, stderr=subprocess.PIPE)

    ## But do not wait till netstat finish, start displaying output immediately ##
    while True:
        out = proc.stderr.read(1)
        if out == '' and proc.poll() != None:
            break
        if out != '':
            sys.stdout.write(out)
            sys.stdout.flush()