For convert only:
for %%i in (.\mid\*.mif) do (
for %%n in (POINT LINESTRING POLYGON MULTIPOLYGON MULTIPOINT MULTILINESTRING) do (
"ogr2ogr" -skipfailures .\shp\%%~ni_%%n.shp %%i -nlt "%%n" -where "OGR_GEOMETRY='%%n'"
)
)
And for add geometry to one shapefile by geometry type:
for %%g in (POINT LINESTRING POLYGON MULTIPOLYGON MULTIPOINT MULTILINESTRING) do (
for %%s in (.\shp\*%%g.shp) do (
if not EXIST .\all_shp\all_%%g.shp (
"ogr2ogr" -skipfailures .\all_shp\all_%%g.shp %%s
) else (
"ogr2ogr" -skipfailures -update -append .\all_shp\all_%%g.shp %%s -nln all_%%g
)
)
)
.\mid\ - mif file folder, .\shp\ - converted shapefile folder, .\all_shp\ result folder