Wäre es nicht allerliebst, wenn wir Funktionen in anderen Dateien aufrufen können, ohne jedesmal den Dateinamen mit Suffix nachzuschauen? Besonders, wenn man ein größeres Programm mit Unterordnern hat ist dies von Vorteil. Unten findet ihr es am Beispiel meines aktuellen Projektes. Genauer: des Programmstarts und des Setzens der Einstellungen.
Erst mal generell:
REM Definition:
SET FUNKTIONSNAME=DATEIPFAD
REM Aufruf:
CALL %FUNKTIONSNAME% [Parameter]
Pro-Tipp: Das "CALL" kann man sich beim Aufruf auch noch sparen:
REM Definition:
SET FUNKTIONSNAME=CALL DATEIPFAD
REM Aufruf:
%FUNKTIONSNAME% [Parameter]
Vorher Infos über die Verzeichnisstruktur:
Hauptdatei: BatCell.bat
Achtung: Dies ist nur ein Ausschnitt der Datei um das vordefinieren zu verdeutlichen. Dieser funktionier nicht alleine und ohne die obige Verzeichnisstruktur mit Dateien. Ein funktionierendes Beispiel findet Ihr unten im Dateianhang "Bsp_fkt_Def.zip".
Es werden die relativen Dateipfade der Funktionen ReadLine.bat und ReadCols.bat jeweils in die Variablen %f_READLINE% und %f_READCOLS% gesetzt.
@echo off & setlocal
Setlocal EnableDelayedExpansion
:START & REM * Start des Programms *
:PATHES & REM DATEIPFADE SETZEN
SET pth_Root=
SET pth_Data=%pth_Root%Data\
SET pth_Sett=%pth_Data%Settings.dat
SET pth_Prog=%pth_Root%Program\
SET pth_Save=%pth_Root%Saves\
:FUNCTIONS & REM FUNKTIONEN VORDEFINIEREN
SET f_READLINE=%pth_Prog%ReadLine.bat
SET f_READCOLS=%pth_Prog%ReadCols.bat
:SETTINGS & REM EINSTELLUNGEN
REM Einstellungen Laden
CALL %f_READLINE% line 1 %pth_Sett%
CALL %f_READCOLS% col "%line%"
REM Einstellungen setzen
CHCP %col[1]% & REM Zeichensatz
MODE CON lines=%col[2]% cols=%col[3]% & REM Fensterhöhe (lines) und -breite (cols)
COLOR %col[4]%%col[5]% & REM Hinter/Vordergrundfarbe
SET SkipIntro=%col[6]% & REM Intro Anzeigen (-1=ja, 0=nein)