Export multiple .MDD at once?
Addon based on this answer, adapted to export all objects in selection to single .mdd files. Make sure 'NewTekk MDD format' add-on is enabled and install the add-on as usual:

batch_mdd_export.py
# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# &lt;pep8 compliant&gt;
​
bl_info = {
    &quot;name&quot;: &quot;Batch export MDD files&quot;,
    &quot;author&quot;: &quot;brockmann&quot;,
    &quot;version&quot;: (0, 1, 0),
    &quot;blender&quot;: (2, 80, 0),
    &quot;location&quot;: &quot;File &gt; Import-Export&quot;,
    &quot;description&quot;: &quot;Batch Export Objects in Selection to MDD&quot;,
    &quot;warning&quot;: &quot;&quot;,
    &quot;wiki_url&quot;: &quot;&quot;,
    &quot;tracker_url&quot;: &quot;&quot;,
    &quot;category&quot;: &quot;Import-Export&quot;}
​
​
import bpy
import os
​
from bpy_extras.io_utils import ExportHelper
​
from bpy.props import (BoolProperty,
                       FloatProperty,
                       IntProperty,
                       StringProperty,
                       EnumProperty,
                       CollectionProperty
                       )
​
​
class Batch_MDD_Export(bpy.types.Operator, ExportHelper):
    &quot;&quot;&quot;Batch export objects to fbx files&quot;&quot;&quot;
    bl_idname = &quot;export_scene.batch_mdd&quot;
    bl_label = &quot;Batch export MDD&quot;
    bl_options = {'PRESET', 'UNDO'}
​
    # ExportHelper mixin class uses this
    filename_ext = &quot;.mdd&quot;
​
    filter_glob : StringProperty(
            default=&quot;*.mdd&quot;,
            options={'HIDDEN'},
            )
​
    # List of operator properties, the attributes will be assigned
    # to the class instance from the operator setting before calling.
    
    # Context group
    use_selection_setting: BoolProperty(
            name=&quot;Selection Only&quot;,
            description=&quot;Export selected objects only&quot;,
            default=True,
            )
​
    use_rest_frame: BoolProperty(
            name=&quot;Use Rest Frame&quot;,
            description=&quot;ToDo&quot;,
            default=False,
            )
            
    frames_per_second: FloatProperty(
            name=&quot;FPS&quot;,
            description=&quot;ToDo&quot;,
            min=1, max=60,
            default=25,
            )
​
    frame_start: IntProperty(
            name=&quot;Frame Start&quot;,
            description=&quot;ToDo&quot;,
            default=1,
            )
    
    frame_end: IntProperty(
            name=&quot;Frame End&quot;,
            description=&quot;ToDo&quot;,
            default=250,
            )
            
    def execute(self, context):                
​
        # get the folder
        folder_path = os.path.dirname(self.filepath)
​
        # get objects selected in the viewport
        viewport_selection = context.selected_objects
​
        # get export objects
        obj_export_list = viewport_selection
        if self.use_selection_setting == False:
            obj_export_list = [i for i in context.scene.objects]
​
        # deselect all objects
        bpy.ops.object.select_all(action='DESELECT')
​
        for item in obj_export_list:
            item.select_set(True)
            if item.type == 'MESH':
                context.view_layer.objects.active = item # Set active object
                file_path = os.path.join(folder_path, &quot;{}.mdd&quot;.format(item.name))
​
                # MDD settings
                bpy.ops.export_shape.mdd(
                        filepath=file_path,
                        fps=self.frames_per_second,
                        frame_start=self.frame_start,
                        frame_end=self.frame_end
                        )
​
            item.select_set(False)
​
        # restore viewport selection
        for ob in viewport_selection:
            ob.select_set(True)
​
        return {'FINISHED'}
​
​
# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(Batch_MDD_Export.bl_idname, text=&quot;MDD Batch Export (.mdd)&quot;)
​
​
def register():
    bpy.utils.register_class(Batch_MDD_Export)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_import)
​
​
def unregister():
    bpy.utils.unregister_class(Batch_MDD_Export)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_import)
​
​
if __name__ == &quot;__main__&quot;:
    register()
​
    # test call
    #bpy.ops.export_scene.batch_mdd('INVOKE_DEFAULT')

I added all possible arguments of the 'lightwave point cache' operator export_shape.mdd(), see line 117. You can change them or add new properties to the operator, wasn't sure.