def create_Scene_batchFile(dat=[],
                           batchFile=None,
                           process=True,
                           postProcesses=True,
                           deleteAfterProcess=False):

    _str_func = 'create_Scene_batchFile'
    cgmGEN.log_start(_str_func)

    if batchFile is None:
        var_project = cgmMeta.cgmOptionVar('cgmVar_projectCurrent',
                                           defaultValue='')

        mProject = PROJECT.data(filepath=var_project.value)

        d_paths = mProject.userPaths_get()

        mPath_root = PATHS.Path(d_paths['root'])
        if mPath_root.exists():
            log.debug('Root | : {0}'.format(mPath_root.asFriendly()))

        else:
            log.debug('Root | Invalid Path: {0}'.format(mPath_root))

        mPath_content = PATHS.Path(d_paths['content'])
        if os.path.exists(mPath_content):
            log.debug('Root | : {0}'.format(mPath_content))
        else:
            log.debug('Root | Invalid Path: {0}'.format(mPath_content))

        _batchPath = os.path.join(mPath_root.asFriendly(), 'mrsScene_batch.py')

    log.debug("batchFile : {0}".format(_batchPath))

    l_pre = [
        'import maya', 'from maya import standalone',
        'standalone.initialize()', 'from cgm.core.mrs import Scene',
        'import maya.mel as mel', 'from maya.api import OpenMaya as om2',
        'om2.MGlobal.displayInfo("Begin")', 'import maya.cmds as mc',
        'mc.loadPlugin("fbxmaya")',
        'mc.workspace("{0}",openWorkspace=1)'.format(mPath_content),
        'import cgm.core.mrs.lib.batch_utils as MRSBATCH', ''
    ]

    l_post = [
        'except Exception,err:', '    print err',
        '    import msvcrt#...waits for key',
        '    om2.MGlobal.displayInfo("Hit a key to continue")',
        '    msvcrt.getch()', '', 'om2.MGlobal.displayInfo("End")',
        'standalone.uninitialize()'
    ]

    log.debug(cgmGEN.logString_sub(_str_func, "Checks ..."))

    l_paths = []
    l_dirs = []
    #l_check = VALID.listArg(f)
    l_mFiles = []
    l_batch = []

    #if not l_check:
    #log.debug(cgmGEN.logString_msg(_str_func,"No file passed. Using current"))
    #l_check = [mc.file(q=True, sn=True)]

    _dat = ['dat = [']

    for d2 in dat:
        _dat.append('{')
        for k, d in d2.iteritems():
            if k == 'objs':
                if d:
                    _l_tmp = ','.join("'{0}'".format(o) for o in d)
                    _dat.append('"{0}" : [{1}],'.format(k, _l_tmp))
                else:
                    _dat.append("'objs' : [ ],")
            elif 'Path' in k:
                _l_tmp = ','.join("'{0}'".format(o) for o in d)
                _dat.append('"{0}" : [{1}],'.format(k, _l_tmp))
            else:
                _dat.append('"{0}" : "{1}",'.format(k, d))
        _dat.append('},')
    _dat.append(']')

    mTar = PATHS.Path(_batchPath)
    _l = "try:Scene.BatchExport(dat)"

    #_l = "try:MRSBATCH.process_blocks_rig('{0}',postProcesses = {1})".format(mFile.asString(),postProcesses)

    if mTar.getWritable():
        if mTar.exists():
            os.remove(mTar)

        log.warning("Writing file: {0}".format(_batchPath))

        with open(_batchPath, 'a') as TMP:
            for l in l_pre + _dat + [_l] + l_post:
                TMP.write('{0}\n'.format(l))

        l_batch.append(mTar)

    else:
        log.warning("Not writable: {0}".format(_batchPath))

    if process:
        log.debug(cgmGEN.logString_sub(_str_func, "Processing ..."))
        log.warning("Processing file: {0}".format(mTar.asFriendly()))
        #subprocess.call([sys.argv[0].replace("maya.exe","mayapy.exe"),f.asFriendly()])
        subprocess.Popen(
            [
                sys.argv[0].replace("maya.exe", "mayapy.exe"), '-i',
                mTar.asFriendly()
            ],
            creationflags=subprocess.CREATE_NEW_CONSOLE)  # env=my_env

        if deleteAfterProcess:
            os.remove(f)

    return
    for f in l_check:
        mFile = PATHS.Path(f)
        if not mFile.exists():
            log.error("Invalid file: {0}".format(f))
            continue

        log.debug(cgmGEN.logString_sub(_str_func))

        _path = mFile.asFriendly()
        l_paths.append(_path)
        _name = mFile.name()

        _d = mFile.up().asFriendly()
        log.debug(cgmGEN.logString_msg(_str_func, _name))
        _batchPath = os.path.join(_d, _name + '_batch.py')
        log.debug(cgmGEN.logString_msg(_str_func, "batchPath: " + _batchPath))
        log.debug(cgmGEN.logString_msg(_str_func, "template: " + _path))

        mTar = PATHS.Path(_batchPath)
        _l = "try:MRSBATCH.process_blocks_rig('{0}',postProcesses = {1})".format(
            mFile.asString(), postProcesses)

        if mTar.getWritable():
            if mTar.exists():
                os.remove(mTar)

            log.warning("Writing file: {0}".format(_batchPath))

            with open(_batchPath, 'a') as TMP:
                for l in l_pre + [_l] + l_post:
                    TMP.write('{0}\n'.format(l))

            l_batch.append(mTar)

        else:
            log.warning("Not writable: {0}".format(_batchPath))

    if process:
        log.debug(cgmGEN.logString_sub(_str_func, "Processing ..."))
        for f in l_batch:
            log.warning("Processing file: {0}".format(f.asFriendly()))
            #subprocess.call([sys.argv[0].replace("maya.exe","mayapy.exe"),f.asFriendly()])
            subprocess.Popen(
                [
                    sys.argv[0].replace("maya.exe", "mayapy.exe"), '-i',
                    f.asFriendly()
                ],
                creationflags=subprocess.CREATE_NEW_CONSOLE)  # env=my_env

            if deleteAfterProcess:
                os.remove(f)
def create_MRS_batchFile(f=None,
                         blocks=[None],
                         process=False,
                         postProcesses=True,
                         deleteAfterProcess=False,
                         gatherOptionVars=True):
    _str_func = 'create_MRS_batchFile'
    cgmGEN.log_start(_str_func)

    l_pre = [
        'import maya', 'from maya import standalone',
        'standalone.initialize()', 'from maya.api import OpenMaya as om2',
        'om2.MGlobal.displayInfo("Begin")', 'import maya.cmds as mc',
        'mc.loadPlugin("matrixNodes")',
        'import cgm.core.mrs.lib.batch_utils as MRSBATCH'
    ]

    l_post = [
        'except:', '    import msvcrt#...waits for key',
        '    om2.MGlobal.displayInfo("Hit a key to continue")',
        '    msvcrt.getch()', 'om2.MGlobal.displayInfo("End")',
        'standalone.uninitialize()'
    ]

    log.debug(cgmGEN.logString_sub(_str_func, "Checks ..."))

    l_paths = []
    l_dirs = []
    l_check = VALID.listArg(f)
    l_mFiles = []
    l_batch = []
    if not l_check:
        log.debug(
            cgmGEN.logString_msg(_str_func, "No file passed. Using current"))
        l_check = [mc.file(q=True, sn=True)]

    for f in l_check:
        mFile = PATHS.Path(f)
        if not mFile.exists():
            log.error("Invalid file: {0}".format(f))
            continue

        log.debug(cgmGEN.logString_sub(_str_func))

        _path = mFile.asFriendly()
        l_paths.append(_path)
        _name = mFile.name()

        _d = mFile.up().asFriendly()
        log.debug(cgmGEN.logString_msg(_str_func, _name))
        _batchPath = os.path.join(_d, _name + '_MRSbatch.py')
        log.debug(cgmGEN.logString_msg(_str_func, "batchPath: " + _batchPath))
        log.debug(cgmGEN.logString_msg(_str_func, "template: " + _path))

        mTar = PATHS.Path(_batchPath)
        _l = "try:MRSBATCH.process_blocks_rig('{0}',postProcesses = {1})".format(
            mFile.asString(), postProcesses)

        if mTar.getWritable():
            if mTar.exists():
                os.remove(mTar)

            log.warning("Writing file: {0}".format(_batchPath))

            with open(_batchPath, 'a') as TMP:
                for l in l_pre + [_l] + l_post:
                    TMP.write('{0}\n'.format(l))

            l_batch.append(mTar)

        else:
            log.warning("Not writable: {0}".format(_batchPath))

    if process:
        log.debug(cgmGEN.logString_sub(_str_func, "Processing ..."))
        for f in l_batch:
            log.warning("Processing file: {0}".format(f.asFriendly()))
            #subprocess.call([sys.argv[0].replace("maya.exe","mayapy.exe"),f.asFriendly()])
            subprocess.Popen(
                [
                    sys.argv[0].replace("maya.exe", "mayapy.exe"), '-i',
                    f.asFriendly()
                ],
                creationflags=subprocess.CREATE_NEW_CONSOLE)  # env=my_env

            if deleteAfterProcess:
                os.remove(f)
    '''