The following add-on generates a unique file path from a given directory and the current timestamp. It modifies both the output path (*Output Properties > Output*) and every base path of *File Output* nodes.

[![UI screenshot][1]][1]

For instance, if the directory (*Output Properties > Auto-Filename > Directory*) is set to `C:\tmp\` and the current timestamp is `2020-03-22_01_10_43_857754` then the output path is `C:\tmp\2020-03-22_01_10_43_857754\####` and the base path of the *File Output* nodes are `C:\tmp\2020-03-22_01_10_43_857754\[name of the file output node]`.

    bl_info = {
        "name": "Auto-Filepath",
        "author": "Robert Guetzkow",
        "version": (1, 0, 2),
        "blender": (2, 80, 0),
        "location": "Output Properties > Auto-filepath",
        "description": "Automatically sets a unique filepath for each frame based on the current timestamp.",
        "warning": "",
        "wiki_url": "",
        "category": "Render"}
    
    import bpy
    import datetime
    from pathlib import Path
    from bpy.app.handlers import persistent
    
    
    @persistent
    def update_filepath(self):
        if not bpy.context.scene.auto_filepath_settings.use_auto_filepath:
            return
        now = datetime.datetime.now()
        path = Path(bpy.context.scene.auto_filepath_settings.directory)
        base_path = path / now.strftime('%Y-%m-%d_%H_%M_%S_%f')
        bpy.context.scene.render.filepath = str(base_path / "####")
        bpy.context.scene.render.use_file_extension = True
        bpy.context.scene.render.use_overwrite = False
        if bpy.context.scene.use_nodes:
            for node in bpy.context.scene.node_tree.nodes:
                if node.type == "OUTPUT_FILE":
                    node.base_path = str(base_path / node.name)
    
    
    def set_directory(self, value):
        path = Path(value)
        if path.is_dir():
            self["directory"] = value
    
    
    def get_directory(self):
        return self.get("directory", bpy.context.scene.auto_filepath_settings.bl_rna.properties["directory"].default)
    
    
    class AutoFilepathSettings(bpy.types.PropertyGroup):
        use_auto_filepath: bpy.props.BoolProperty(name="Automatic filepath generation.",
                                                  description="Enable/disable automatic filepath generation. When enabled, "
                                                              "this will overwrite the output path and the base path of "
                                                              "all File Output nodes.",
                                                  default=False)
    
        directory: bpy.props.StringProperty(name="Directory",
                                            description="Directory where files shall be stored.",
                                            default="/",
                                            maxlen=4096,
                                            subtype="DIR_PATH",
                                            set=set_directory,
                                            get=get_directory)
    
    
    class AUTOFILEPATH_PT_panel(bpy.types.Panel):
        bl_label = "Auto-Filepath"
        bl_space_type = "PROPERTIES"
        bl_region_type = "WINDOW"
        bl_context = "output"
        bl_options = {"DEFAULT_CLOSED"}
    
        def draw_header(self, context):
            self.layout.prop(context.scene.auto_filepath_settings, "use_auto_filepath", text="")
    
        def draw(self, context):
            layout = self.layout
            layout.prop(context.scene.auto_filepath_settings, "directory")
    
    
    classes = (AutoFilepathSettings, AUTOFILEPATH_PT_panel)
    
    
    def register():
        for cls in classes:
            bpy.utils.register_class(cls)
        bpy.types.Scene.auto_filepath_settings = bpy.props.PointerProperty(type=AutoFilepathSettings)
        if update_filepath not in bpy.app.handlers.render_pre:
            bpy.app.handlers.render_pre.append(update_filepath)
    
    
    def unregister():
        for cls in classes:
            bpy.utils.unregister_class(cls)
        del bpy.types.Scene.auto_filepath_settings
        if update_filepath in bpy.app.handlers.render_pre:
            bpy.app.handlers.render_pre.remove(update_filepath)
    
    
    if __name__ == "__main__":
        register()

The add-on can also be [downloaded from GitHub Gist][2].


  [1]: https://i.sstatic.net/eOshr.png
  [2]: https://gist.github.com/robertguetzkow/8dacd4b565538d657b72efcaf0afe07e