@echo off
cls
echo.
echo 1_DemuxJob_Init.bat 
echo.
REM
REM +++++ set-variable fuer Vereinfachung ++++++++++++++++++++++++++++++++++++++++++
REM
REM ----- zu erzeugende Batch mit Suffix
REM         wird im selben Pfad erzeugt
REM
set bat=2_DemuxJob_Start.bat
REM
REM ----- Batch-Dateiname ohne Suffix
REM         Datei erzeugt genau 1 Element des Jobstapels und erweitert diesen
REM              zur ajb-Datei
REM
set abb=0_DemuxJob_Create.bat
REM
REM ----- ajb-Dateiname ohne Suffix
REM         wird im selben Pfad erzeugt
REM
set ajb=3_DemuxJob
REM
REM
REM ++++++ WICHTIG ERST alte Dateien loeschen +++++++++++++++++++++++++++++++++++++
REM
if exist %bat% del %bat% >nul
if exist %ajb%.ajb del %ajb%.ajb >nul
REM
REM +++++ gemeinsamer Suffix aller zu demuxendenen Dateien ++++++++++++++++++++++++
REM
if "%1"=="" goto fehler
REM
REM +++++ Zielverzeichnis der demuxten Dateien ++++++++++++++++++++++++++++++++++++
REM       %2 optional
REM
REM +++++ Zu demuxende Dateien liegen immer lokal zur Batch +++++++++++++++++++++++
REM       kein Paramter
REM
REM +++++ bat erzeugen ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM
REM
REM ----- REM-Kopf -------------------------------------------------------------
REM
echo @echo off > %bat%
echo cls>> %bat%
echo echo.>> %bat%
echo echo %bat%>> %bat%
echo echo.>> %bat%
echo echo    Diese Batch>> %bat%
echo echo      wird automatisch und dynamisch erzeugt per>> %bat%
echo echo                1_DemuxJob_Init.bat>> %bat%
echo echo.>> %bat%
echo echo      erzeugt %ajb%.ajb>> %bat%
echo echo           die dann in PVAStrumento zu laden ist,>> %bat%
echo echo             um %1-Dateien auf 1 Schlag zu demuxen.>> %bat%
echo echo.>> %bat%
echo echo      benoetigt VOR Start eine manuelle Anpassung im Quelltext>> %bat%
echo echo.>> %bat%
echo echo      loescht sich selbst am Ende ihrer Abarbeitung.>> %bat%
echo echo.>> %bat%
echo echo   Im Verzeichnis der %1-Dateien muessen liegen:>> %bat%
echo echo       %abb% (intern verwendet)>> %bat%
echo echo       1_DemuxJob_Init.bat (manuell zu starten)>> %bat%
echo echo       %bat% (erzeugt per 1_DemuxJob_Init.bat)>> %bat%
echo echo       %ajb%.ajb (erzeugt per %bat%)>> %bat%
echo echo.>> %bat%
echo echo.>> %bat%
REM
REM ----- notepad-Aufruf----------------------------------------------------------
REM
REM nicht moeglich, da Batch nach Editierung nicht neu eingelesen wird ohne Neustart der Batch
REM
REM ----- dir-Block -------------------------------------------------------------
REM
echo REM --------------------------------------------------------------->> %bat%
echo REM>> %bat%
echo REM Wenn nachfolgend %1-Dateien gelistet sind,>> %bat%
echo REM       dann diese verschieben zum Wert der SET-Variablen unten,>> %bat%
echo REM               (wobei Suffixe nicht uebernommen duerfen),>> %bat%
echo REM		so dass nachfolgend keine Dateinamen mehr stehen.>> %bat%
echo REM               (sonst Fehlermeldung beim Abarbeiten der Batch).>> %bat%
echo REM>> %bat%
echo REM #################### nachfolgend abaendern ####################>> %bat%
echo REM>> %bat%
dir /b *.%1>> %bat%
echo REM>> %bat%
cls
REM
REM Dank Microsoft-Schwachsinn bringt dir, wenn keine Datei gefunden wurde,
REM             eine Bildschirmmeldung, obwohl Umlenkung stattfindet !
REM
echo REM>> %bat%
REM
REM ----- SET-Variablen-Block -------------------------------------------------------
REM
echo REM %1-Dateinamen  mit Pfad ab Root (ansonsten lokal zu dieser Batch)>> %bat%
echo REM                OHNE Suffix>> %bat%
echo REM                DOS-konform, also>> %bat%
echo REM                    keine Sonderzeichen wie Hochkomma, Gaensefuesschen>> %bat%
echo REM                    kein Blank, kein ß, keine Umlaute wie ö ü ä etc.>> %bat%
echo REM                    aber erlaubt ist _>> %bat%
echo REM>> %bat%
echo REM Nur Datei-Praefix verwenden (Dateisuffix weglassen) !>> %bat%
echo REM>> %bat%
echo set f01=>> %bat%
echo set f02=>> %bat%
echo set f03=>> %bat%
echo set f04=>> %bat%
echo set f05=>> %bat%
echo set f06=>> %bat%
echo set f07=>> %bat%
echo set f08=>> %bat%
echo set f09=>> %bat%
echo set f10=>> %bat%
echo set f11=>> %bat%
echo set f12=>> %bat%
echo set f13=>> %bat%
echo set f14=>> %bat%
echo set f15=>> %bat%
echo set f16=>> %bat%
echo set f17=>> %bat%
echo set f18=>> %bat%
echo set f19=>> %bat%
echo set f20=>> %bat%
echo REM>> %bat%
echo REM ###############################################################>> %bat%
REM
REM ----- CALL-Block -------------------------------------------------------------
REM
echo REM>> %bat%
echo REM  Hilfsvariable als Text, der weiter unten auch fest kodiert ist innerhalb if>> %bat%
echo REM>> %bat%
echo REM>> %bat%
echo set txt=nicht>> %bat%
echo REM>> %bat%
echo REM>> %bat%
echo REM Set-Variablen-Inhalt per %% %% verwenden.>> %bat%
echo REM Parameter-Inhalt per %%   und ohne zweites %% verwenden.>> %bat%
echo REM>> %bat%
echo REM>> %bat%
echo REM>> %bat%
REM  echo if "%f01%"  wird trotz wie folgt ge-echot  if "" == ""
REM     Es wird also %f01% ausgewertet, wobei f01 nicht gesetzt ist und damit Leerkette benutzt wird.
REM     Damit MUSS kodiert werden   if "%%f01%%"
REM
REM
echo if "%%f01%%" == "" goto m02>> %bat%
echo call %abb%  %ajb% %%f01%% %1 %2>> %bat%
echo REM  Parameter sind:>> %bat%
echo REM    Praefix der ajb-Datei>> %bat%
echo REM    Praefix der zu demuxenden Datei, optional mit Pfad ab Root (mit abschliessendem \)>> %bat%
echo REM                                                   wenn kein Pfad kodiert, so lokal zur BAT>> %bat%
echo REM    Suffix der zu demuxenden Datei>> %bat%
echo REM    optional Pfad der gemuxten Dateien, ab Root, immer mit abschliessendem \>> %bat%
echo REM                                                   wenn kein Pfad kodiert, so lokal zur BAT>> %bat%
echo REM>> %bat%
echo set txt=>> %bat%
echo :m02>> %bat%
echo if "%%f02%%" == "" goto m03>> %bat%
echo call %abb%  %ajb% %%f02%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m03>> %bat%
echo if "%%f03%%" == "" goto m04>> %bat%
echo call %abb%  %ajb% %%f03%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m04>> %bat%
echo if "%%f04%%" == "" goto m05>> %bat%
echo call %abb%  %ajb% %%f04%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m05>> %bat%
echo if "%%f05%%" == "" goto m06>> %bat%
echo call %abb%  %ajb% %%f05%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m06>> %bat%
echo if "%%f06%%" == "" goto m07>> %bat%
echo call %abb%  %ajb% %%f06%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m07>> %bat%
echo if "%%f07%%" == "" goto m08>> %bat%
echo call %abb%  %ajb% %%f07%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m08>> %bat%
echo if "%%f08%%" == "" goto m09>> %bat%
echo call %abb%  %ajb% %%f08%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m09>> %bat%
echo if "%%f09%%" == "" goto m10>> %bat%
echo call %abb%  %ajb% %%f09%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m10>> %bat%
echo if "%%f10%%" == "" goto m11>> %bat%
echo call %abb%  %ajb% %%f10%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m11>> %bat%
echo if "%%f11%%" == "" goto m12>> %bat%
echo call %abb%  %ajb% %%f11%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m12>> %bat%
echo if "%%f12%%" == "" goto m13>> %bat%
echo call %abb%  %ajb% %%f12%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m13>> %bat%
echo if "%%f13%%" == "" goto m14>> %bat%
echo call %abb%  %ajb% %%f13%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m14>> %bat%
echo if "%%f14%%" == "" goto m15>> %bat%
echo call %abb%  %ajb% %%f14%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m15>> %bat%
echo if "%%f15%%" == "" goto m16>> %bat%
echo call %abb%  %ajb% %%f15%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m16>> %bat%
echo if "%%f16%%" == "" goto m17>> %bat%
echo call %abb%  %ajb% %%f16%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m17>> %bat%
echo if "%%f17%%" == "" goto m18>> %bat%
echo call %abb%  %ajb% %%f17%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m18>> %bat%
echo if "%%f18%%" == "" goto m19>> %bat%
echo call %abb%  %ajb% %%f18%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m19>> %bat%
echo if "%%f19%%" == "" goto m20>> %bat%
echo call %abb%  %ajb% %%f19%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m20>> %bat%
echo if "%%f20%%" == "" goto m21>> %bat%
echo call %abb%  %ajb% %%f20%% %1 %2>> %bat%
echo set txt=>> %bat%
echo :m21>> %bat%
REM
REM ----- Erfolgsmeldung -------------------------------------------------------
REM
echo echo.>> %bat%
echo echo.>> %bat%
echo echo ***** %ajb%.ajb>> %bat%
echo echo         %%txt%% erzeugt.>> %bat%
echo if "%%txt%%" == "nicht" goto m99>> %bat%
echo echo          muss im Verzeichnis der %1-Dateien liegen.>> %bat%
echo echo          kann per PVAStrumento als Batch-Job geladen werden,>> %bat%
echo echo               um die %1-Dateien zu demuxen.>> %bat%
echo :m99>> %bat%
echo set txt=>> %bat%
REM
REM ----- SET-Variablen-Block -------------------------------------------------------
REM
echo REM>> %bat%
echo REM ----- set-Variablen loeschen>> %bat%
echo REM>> %bat%
echo set f01=>> %bat%
echo set f02=>> %bat%
echo set f03=>> %bat%
echo set f04=>> %bat%
echo set f05=>> %bat%
echo set f06=>> %bat%
echo set f07=>> %bat%
echo set f08=>> %bat%
echo set f09=>> %bat%
echo set f10=>> %bat%
echo set f11=>> %bat%
echo set f12=>> %bat%
echo set f13=>> %bat%
echo set f14=>> %bat%
echo set f15=>> %bat%
echo set f16=>> %bat%
echo set f17=>> %bat%
echo set f18=>> %bat%
echo set f19=>> %bat%
echo set f20=>> %bat%
echo set f99=>> %bat%
REM
REM ----- IMMER ZUM SCHLUSS sich selbst loeschen --------------------------------
REM
echo REM>> %bat%
echo REM ----- sich selbst loeschen>> %bat%
echo REM>> %bat%
echo echo.>> %bat%
echo echo.>> %bat%
echo pause >> %bat%
echo del %bat% >> %bat%
echo cls>> %bat%
REM
REM +++++ Editor starten +++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM
echo.
echo 1_DemuxJob_Init.bat 
echo.
echo      Batch-File  %bat%  erzeugen
echo.
echo.
echo   1. Es wird jetzt notepad.exe gestartet, damit
echo.
echo              %bat%
echo.
echo       manuell anpasst werden kann.
echo.
echo   2. Danach diese angepasste Batch manuell starten, um komplett neu
echo.
echo              %ajb%.ajb
echo.
echo       im gleichen Verzeichnis zu erzeugen,
echo              die dann in PVAStrumento als Demux per Stapel zu laden ist.
echo.
echo.
pause
notepad.exe %bat%
goto ende
REM
REM +++++ bei Fehler +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM
:fehler
echo      Batch-File  %bat%  erzeugen
echo.
echo                 Im Verzeichnis der zu demuxenden Dateien muessen liegen:
echo                        %abb% (intern verwendet)
echo                        1_DemuxJob_Init.bat (manuell zu starten)
echo                        %bat% (erzeugt per 1_DemuxJob_Init.bat)
echo                        %ajb%.ajb (erzeugt per %bat%)
echo.
echo Aufruf: 1_DemuxJob_Init  suffix [ziel_pfad]
echo.
echo                  suffix       der zu demuxenden Dateien
echo                  ziel_pfad    optional, Pfad der demuxten Dateien
echo                                         mit abschliessendem \
echo                               wenn nicht kodiert, so lokal zur Batch
echo.
echo                  Zu demuxende Dateien liegen immer lokal zur Batch.
echo.
echo   Bsp.: 1_DemuxJob_Init rec h:\
echo.
echo.
pause
set bat=
set abb=
set ajb=
:ende