Put this processing script to the appropiate director (in my case it's "C:\Users\Kay\.qgis2\processing\scripts") to make it work. Then it will be easily accessible from your processing toolbox.
##[User scripts]=group ##input=vector ##class_field=field input ##output=output file from qgis.core import * from PyQt4.QtCore import * from processing.core.VectorWriter import VectorWriter layer = processing.getObject(input) provider = layer.dataProvider() fields = provider.fields() class_field_index = layer.fieldNameIndex(class_field) fields.remove( class_field_index ) inFeat = QgsFeature() outFeat = QgsFeature() inGeom = QgsGeometry() nElement = 0 writers = {} feats = processing.features(layer) nFeat = len(feats) for inFeat in feats: progress.setPercentage(int(100 * nElement / nFeat)) nElement += 1 featAttr = inFeat.attributes() classField = featAttr[class_field_index] if classField not in writers: outputFile = output + '_' + classField + '.shp' writers[classField] = VectorWriter(outputFile, None, fields, provider.geometryType(), layer.crs()) inGeom = inFeat.geometry() outFeat.setGeometry(inGeom) del featAttr[class_field_index] outFeat.setAttributes(featAttr) writers[classField].addFeature(outFeat) for writer in writers.values(): del writer