def _readBatchOutputForFile(self, directory, fileIO, filename, session, spatial, spatialReferenceID,
                                replaceParamFile=None, maskMap=None):
        """
        When batch mode is run in GSSHA, the files of the same type are
        prepended with an integer to avoid filename conflicts.
        This will attempt to read files in this format and
        throw warnings if the files aren't found.
        """
        # Get contents of directory
        directoryList = os.listdir(directory)

        # Compile a list of files with that include the filename in them
        batchFiles = []
        for thing in directoryList:
            if filename in thing:
                batchFiles.append(thing)

        numFilesRead = 0

        for batchFile in batchFiles:
            instance = fileIO()
            instance.projectFile = self

            if isinstance(instance, WMSDatasetFile):
                instance.read(directory=directory, filename=batchFile, session=session, maskMap=maskMap, spatial=spatial,
                              spatialReferenceID=spatialReferenceID)
            else:
                instance.read(directory, batchFile, session, spatial=spatial, spatialReferenceID=spatialReferenceID,
                              replaceParamFile=replaceParamFile)
            # Increment runCounter for next file
            numFilesRead += 1

        # Issue warnings
        if '[' in filename or ']' in filename:
            log.info('A file cannot be read, because the path to the '
                     'file in the project file has been replaced with '
                     'replacement variable {0}.'.format(filename))

        elif numFilesRead == 0:
            log.warning('{0} listed in project file, but no such '
                     'file exists.'.format(filename))

        else:
            log.info('Batch mode output detected. {0} files read '
                     'for file {1}'.format(numFilesRead, filename))