home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 21
/
CD_ASCQ_21_040595.iso
/
dos
/
prg
/
c
/
freedos3
/
source
/
swsubst
/
swsubst.txt
< prev
Wrap
Text File
|
1994-12-20
|
30KB
|
780 lines
$Id: SWSUBST.TXT 2.0 1994/12/21 09:16:02 ska Rel ska $
Das ist die Dokumentationsdatei für SWSUBST.EXE.
An English version of this text resides in the file SWSUBST.ENG.
Merke:
++ Die Angabe von relativen Pfaden kann unerwartete Ergebnisse nach sich
ziehen.
++ Nicht existierende Pfade können das System in einen
Dead-Lock führen.
++ Netz-Laufwerke sind nur bedingt nutzbar.
++ Die Verwendung innerhalb Multitaskumgebungen, wie MS-Windows, kann
einen Systemabsturz erzeugen oder kann dazu führen, daß falsche
physische Pfade genutzt werden.
++ MS Windows v3.11 (for Workgroups) behandelt Festplatten wie
Netzwerke, so daß SWSUBST nur bedingt verwendbar ist, wenn der 32-Bit
Zugriff aktiv ist.
++ Aufgrund der unterschiedlichen CDS läuft das Programm auf den meisten
DR-DOS-Versionen nicht.
++ Der physische Pfad von Netzlaufwerken kann nicht erzeugt werden.
++ Wird die Programmdatei in "JOIN" umbenannt, wird standardmäßig JOIN
und nicht SUBST ausgeführt.
Kurzbeschreibung:
Das Programm SWSUBST:
- ersetzt und erweitert die DOS-Befehle SUBST und JOIN;
- tauscht zwei Laufwerksbuchstaben gegeneinander aus;
- hebt alle SUBST/JOIN Verbindungen mit einem Befehl auf;
- legt einen Pfad mit allen notwendigen Überverzeichnissen an;
- erlaubt das direkte Ändern und die Abfrage der Laufwerksflags;
- ermöglicht das Suchen in und Anzeigen der installierten Geräte und der
Speicherblockkette (MCB chain);
- akzeptiert die Angabe von Laufwerken sowohl über das Treiberkennzeichen
als auch über die Laufwerkskennzeichnung;
- ermittelt die Laufwerksnummern;
- erlaubt Mehrsprachigkeit; deutsche und englische Texte vordefiniert.
Inhalt:
- Dateien im Paket
- Garantien
- Optionen
- Kommandos
- Unterschied zu DOS' SUBST/JOIN
- Umgebungsvariablen
- Neue Texte einbringen
- Autor
Dateien im Paket:
SWSUBST.EXE Programm
SWSUBST.TXT Programmbeschreibung in Deutsch
SWSUBST.ENG Programmbeschreibung in Englisch
SWSUBST.LNG Unterstützte Sprachen
Garantien:
SWSUBST ist Freeware; es muß weder Entgeld entrichtet noch eine
Registrierung durchgeführt werden. Es darf weitergegeben werden, solange
alle drei Dateien zusammen und unverändert, Ausnahme siehe "Neue Texte
einbringen", bleiben. Der Weitergebende darf in keiner Weise davon
profitieren.
Der Autor von SWSUBST kann für keinerlei Schäden haftbar gemacht werden.
Hierbei ist unerheblich, ob die Schäden direkt oder indirekt entstehen
oder ob auf die Möglichkeit einer Schädigung hingewiesen wurde, oder
nicht. Das Programm SWSUBST darf nur auf eigene Gefahr genutzt werden.
Disclaimer
In no event will the Author be liable to users for any damages, including
but not limited to any lost profits, lost savings or other incidental or
consequential damages arising out of the use or the inability to use this
program, even if the Author has been advised of the possibility of such
damages, or for any claim by other party.
SWSUBST is FreeWare; there is no charge for using it and it may be
distributed freely so long as the files are kept together and unaltered,
except see "Including of new Texts". You may neither sell nor profit
from distribution of SWSUBST in any way.
Programmnutzung:
SWSUBST [ {option} ] [kommando]
Optionen)
- Optionen können mit allen Kommandos angegeben werden, obwohl sie
nicht für alle gültig sind.
- Optionen dürfen nicht gemischt, jedoch in beliebiger Reihenfolge
angegeben werden.
- In Umgebungsvariablen können spezielle Optionen gesetzt werden.
Die allgemeine Form einer Option lautet:
/[+-]?.[!]
wobei steht für:
/ der Schrägstrich zur Kennzeichnung der Option
[+-] ein optionales Plus bzw. Minus. Normalerweise schalten Optionen
zwischen "an" und "aus" hin und her. Am Anfang stehen alle Option auf
"aus", d.h. /a schaltet die Option "an", während /a /a die Option "a"
erst "an", dann wieder "aus" schaltet.
/+a schaltet die Option "a" "an", /-a "aus".
Ist ein Plus bzw. ein Minus angegeben, wird [!] (s. dort) ignoriert.
? das Zeichen (s.u.), welches für den Namen der jeweiligen Option steht
. beliebige oder kein Zeichen, d.h. /a ist identisch mit /aaaaa, /a../34,
jedoch nicht /aa! (s.u.)
[!] ein optionales Ausrufezeichen am Ende einer Option. Damit kann eine
Spezialbedeutung der jeweiligen Option aktiviert werden (vgl. [+-]).
Diese Spezialbedeutung wird aufgehoben, wenn die Option ein weiteres
Mal verwendet wird, z.B. /a! /a schaltet die Option "a" auf "ein" unter
Beachtung der Spezialbedeutung und dann wieder auf "aus".
Optionskennzeichen:
#: Unter der CDS-Übersicht soll die Anzahl der eingefügten Laufwerke
(JOIN) angezeigt werden. Hierbei werden die entsprechenden Laufwerke in
der Tabelle gezählt und mit einem DOS-internen Flag verglichen.
Spezialbedeutung: Unterscheiden sich beide Werte, wird das DOS-interne
Flag, auf den Wert aus der Tabelle gesetzt.
a: Nach dem Ausführen des Kommandos, soll die CDS-Übersicht ausgegeben
werden; diese Option wird für die Kommandos "/l" and "/m" ignoriert.
f: An einigen Stellen können Namen gespeichert sein. SWSUBST nimmt an,
daß diese Namen rechtens sind, wenn sie aus Zeichen zwischen ASCII 32
und 126 bestehen, d.h. keine Umlaute, griechischen Zeichen u.ä. Ist
diese Option angegeben, werden alle Namen als korrekt angesehen,
Zeichen außerhalb des oben angegebenen Bereichs werden in der
hexadezimaler Form: \x?? ausgegeben, wobei ?? die stets zweistellige
hexadezimale Darstellung des ASCII-Wertes des Zeichen ist.
c: Legt bei JOIN bzw. SUBST den erforderlichen Pfad an und erzeugt im
Fehlerfall eine Warnung, falls der Pfad weder existiert noch anlegbar
ist. Diese Option ist mit Vorsicht zu geniessen, da mit den
physischen Pfaden gearbeitet werden muß, welche logisch evtl. nicht
erreichbar sind. Laufwerke, welche mit ASSIGN umgewiesen sind,
erzeugen stets Fehler. Dabei können Verzeichnisse in nicht
erwünschten Pfaden erstellt werden.
Spezialbedeutung: Bei SUBST wird der Pfad nicht angelegt.
_: Neben den Treibernamen sollen in der CDS-Übersicht alle Attribute,
auch die ohne (bekannte) Bedeutung ausgeben werden.
Kommandos:
Verfügbarkeit:
Kommando 1)
Kommando 2) lw:{<op><flag>}
Kommando 3) /w lw
Kommando 4) /s lw1 lw2
Kommando 5) /u lw [-]pfad
Kommando 6) /j lw [-]pfad
Kommando 7) /l[!] [gerät]
Kommando 8) /m[!] [name]
Kommando 9) -
Kommando 10) --
Kommando 11) /d lw bzw. lw -
Kommando 12) lw [-]pfad
Kommando 13) /k [-]pfad
Kommando 14) /q lw:{<op><flag>}
Die allgemeine Form von Kommandos ist identisch mit der von Optionen,
jedoch ist [+-] nicht erlaubt. Abkürzend wird hier deshalb nur "/?"
geschrieben.
Spezifikation von Laufwerksbezeichnern:
lw steht für ein Laufwerkskennzeichen. Es können einzelne Buchstaben
oder ein Buchstabe mit anschließendem Doppelpunkt verwendet werden, d.h.
'a' und 'a:' sind identisch. Innerhalb von Pfadangaben ist die zweite
Form zu verwenden. Manche Treiber fügen in einem ansonsten nicht
benutzten Bereich einen Namen ein. Dieser kann ebenfalls zur Laufwerks-
identifizierung genutzt werden. Bsp.: Ist der Treibername "DRIVR-1",
kann auf ihn mittels ':drivr-1:' bezug genommen werden. Groß- und Klein-
schreibung wird ignoriert. Der Name darf abgekürzt werden, d.h. im
obigen Fall könnte man auch ':drivr:' oder sogar ':d:' schreiben.
Sollten zwei oder mehr Treiber über denselben Namen verfügen, kann eine
Nummer verwendet werden, d.h. sollten folgende Treiber existieren:
A 011c:136a ... .... PHYS ..... A:"\
==>.DRIVER.<==
B 011c:138b ... .... PHYS ..... B:"\
==>.DRIVER.<==
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
==>.DRIVER.<==
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
Auf Laufwerk A: kann mittels :d:, :dr:, :dri: etc. zugegriffen werden,
auf Laufwerk B: vermittels :1:d:, :1:dr:, :1:dri:, :1:driv: etc. auf
Laufwerk C: mit :2:d:, :2:dr:, :2:dri:, :2:driv:, :2:drive:, :2:driver:.
In der Übersicht werden die Punkte hinter ">" bzw. vor "<" vom Programm
eingesetzt und dürfen nicht mit angegeben werden. Leerzeichen innerhalb
des Namens sind ein Problem, da die Laufzeitumgebung das Leerzeichen zum
Trennen der Parameter verwendet.
Eine weitere Möglichkeit, Laufwerksbuchstaben zu erzeugen, ist die Suche
nach den Laufwerkskennzeichen (volume label). Hierbei ist die Form:
'::...:' bzw. ':-:...:' zu verwenden, wobei '...' für den Beginn des
Kennzeichens steht. Ist das Minus '-' angegeben, werden SUBST und JOIN
Verbindungen für dem Test gelöst.
Achtung: Das Format ':-:...:' impliziert nicht, daß der entstehende Pfad
auch physisch interpretiert wird.
Kommando 1)
ohne kommando
Anzeiger aller mit LASTDRIVE in CONFIG.SYS eingerichteten Laufwerke.
Es wird folgende Ausgabe erzeugt: (bspw.)
A 011c:136a ... .... PHYS ..... ...... A:"\
_-P--------------_
B 011c:138b ... .... PHYS ..... ...... B:"\
_-P--------------_
C 011c:13ac ... .... PHYS ..... ...... C:"\CC\SWSUBST
_-P--------------_
D 011c:13cd ... .... PHYS ..... ...... D:"\
_-P--------------_
E 0000:0000 ... .... .... ..... ...... E:"\
_----------------_
F 0000:0000 ... .... .... ..... ...... F:"\
_----------------_
G 0000:0000 NET .... PHYS ..... HIDDEN \\G.\A."
==>.MSCD001 .<== _NP------H-------_
Die Spalten haben folgende Bedeutung:
1 - Logischer Laufwerksbezeichner, mithilfe dessen der DOS-Nutzer das
Laufwerk ansprechen kann.
2 - Adresse des Disk Parameter Block (DPB), welcher das Laufwerk in
physischer Hinsicht beschreibt. Sie ist an sich nicht von Interesse
(außer halt für mich).
3 - NET: Laufwerk ist mit den Network Redirector integriert, z.B. CD-ROM.
4 - JOIN: Physisches Laufwerk ist mittels DOS-Befehl JOIN in den
Verzeichnisbaum integriert. (s. physischer Pfad)
5 - PHYS: Ist stets gesetzt, kennzeichnet ein benutzbares Laufwerk. Auch
nicht-physische Laufwerke, wie DoubleSpace oder Stacker, bekommen diese
Kennung.
6 - SUBST: Logisches Laufwerk ist einem Pfad eines anderen physischen
Laufwerks zugeordnet.
7 - HIDDEN: Ein Flag, welches das Laufwerk für Netzwerktreiber(?) unsichtbar
machen soll.
8 - Physische Pfad: Der Laufwerksbezeichner in Spalte 7 darf nicht mit dem
logischen Laufwerksbezeichner verwechselt werden, hier kennzeichnet
er ein physisches Laufwerk, also
A: erstes Diskettenlaufwerk
B: zweites Diskettenlaufwerk
C: primäre Partition der ersten Festplatte
D: primäre Partition der zweiten Festplatte
E-?: alle weiteren Partitionen der ersten Festplatte
??-*: alle weiteren Partitionen der zweiten Festplatte
Das Zeichen >>"<< ist nicht Teil des Pfades, es kennzeichnet die Stelle,
wo sich das Wurzelverzeichnis befindet. bspw.
C Befindet man sich logischen Verzeichnis "C:\", befindet man sich
auch im physischen Verzeichnis "C:\".
D Befindet man sich im logischen Verzeichnis "D:\", befindet man
sich im physischen Verzeichen "C:\CC\SWSUBST".
Der Teil hinter dem >>"<<-Zeichen kennzeichnet den aktuellen Pfad bzgl.
des Wurzelverzeichnisses, also hier: "D:\TEST" und "C:\CC\SWSUBST".
Falls der Blocktreiber einen Namen in einem ansonsten unbenutzten
Bereich ablegt, wird dieser unter der jeweiligen Zeile als
==>.???.<==
mit dem Treibernamen ??? angezeigt. Treiber können maximal 7 bzw. 8
Zeichen lang sein.
Neben diesem Namen bzw. allein auf der nächsten Zeile wird der Spiegel
aller Attribute angezeigt, wenn die Option '/_' eingeschalten ist:
_-P--------------_
Bekannte Optionen werden im gesetzten Zustand mit ihrem Anfangs-
buchstaben gekennzeichnet, ansonsten steht '-' für nicht gesetzt, '+'
für gesetzt. Die beiden Unterstriche '_' stehen immer links und rechts
daneben.
Ist sowohl PHYSICAL als auch NETWORK gesetzt, handelt es sich um ein
Installable File System (IFS) -- Installierbares Dateisystem mittels
des Network Redirectors (z.B. MSCDEX).
Kommando 2) lw:{<op><flag>}
Verändert die Flags (Spalten 3-6) des Laufwerks lw. <flag> kann
PHYSICAL, JOIN, SUBST, NETWORK, HIDDEN oder eine ein- oder zweistellige
Dezimalzahl zwischen 0 und 15 (Groß- und Kleinschreibung unwichtig) bzw.
eine beliebige, aus mindestens einem Zeichen bestehende Abkürzung sein.
<op> kann sein: '+' für setzen, '-' löschen, '=' das Flag setzen, die
anderen löschen. Im Attributspiegel bezeichnet 0 das rechte Flag.
Bsp.:
A 011c:136a ... .... PHYS ..... A:"\
B 011c:138b ... .... PHYS ..... B:"\
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
und
SWSUBST a=j+s
führt zu:
A 011c:136a ... JOIN .... SUBST A:"\
B 011c:138b ... .... PHYS ..... B:"\
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
und
SWSUBST a=network=join=phys
führt zu:
A 011c:136a ... .... PHYS ..... A:"\
B 011c:138b ... .... PHYS ..... B:"\
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
Als spezielle Flags sind noch OFF und ON zugelassen. OFF entspricht
-NETWORK-PHYS-JOIN-SUBST, d.h. es löscht alle Flags, das Laufwerk ist
fürderhin nicht mehr ansprechbar. Der Operator darf beliebig sein, d.h.
'+', '-' oder '='. Desweitern wird implizit 'swsubst <lw> -' ausgeführt.
s. das Beispiel unten. ON muß immer ausgeschrieben werden und entspricht
=PHYS, d.h. es macht das Laufwerk verfügbar, sofern es sich nicht um ein
Netzlaufwerk o.ä. handelt. Auch hierbei ist der Operator beliebig. ON ist
lediglich ein Zugeständnis: >>wenn OFF, dann auch ON<<.
In beiden Fällen werden auch alle anderen Elemente innerhalb der CDS
geändert, so daß für DOS das Laufwerk OFF "aus" bzw. ON "an" geschalten
wird. Leider muß ON nicht gleichbedeutend sein mit "korrekt".
A 011c:136a ... .... PHYS ..... A:"\
B 011c:138b ... .... PHYS ..... B:"\
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
und
SWSUBST d:=off
führt zu:
A 011c:136a ... .... PHYS ..... A:"\
B 011c:138b ... .... PHYS ..... B:"\
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
D 0000:0000 ... .... .... ..... D:"\
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
Kommando 3) /w lw
"which is"
Gibt als ERRORLEVEL die Nummer des Laufwerks zurück und produziert
ansonsten keine Ausgaben.
ERRORLEVEL == 65 => A:
66 => B:
... ...
ERRORLEVEL == 1 => Laufwerk existiert nicht.
Sinnvoll zu verwenden ist diese Funktion, um von einem Treibernamen den
Laufwerksbuchstaben zu ermitteln, um zu testen, ob dieses Laufwerk
mittels LASTDRV in der CONFIG.SYS vorbereitet wurde, oder um den
aktuellen Laufwerksbuchstaben von einem Laufwerkkennzeichen (volume
label) zu ermitteln.
Die Nummern liegen ab 65 (ASCII 'A'), weil viele DOS-Kommandoprozessoren
ERRORLEVEL auf eine Nummer zwischen 1 bis 12 setzen, falls sie das Programm
nicht laden konnten.
Kommando 4) /s lw1 lw2
"swap"
Tauscht die Einträge der Laufwerke lw1 und lw2 aus.
A 011c:136a ... .... PHYS ..... A:"\
B 011c:138b ... .... PHYS ..... B:"\
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
und
SWSUBST /s a c
führt zu:
A 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
B 011c:138b ... .... PHYS ..... B:"\
C 011c:136a ... .... PHYS ..... A:"\
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
Kommando 5) /u lw pfad
"subst"
Substituiert das Laufwerk lw mit dem Pfad pfad.
Die Parameter müssen folgendes Format haben:
lw - Ein Buchstabe evtl. gefolgt von einem Doppelpunkt, bspw.
"A", "a", "A:" oder "a:" sind legal und verweisen auf das
logische Laufwerk A:. Wurde ein Netzlaufwerk oder ein Laufwerk
größer als LASTDRV angegeben, wird ein Fehler erzeugt.
pfad - Der physische Pfad, auf den das logische Laufwerk verweisen soll.
Ist pfad "-", "/d" oder "/D" ist diese Angabe gleichbedeutend
mit "-?:\", wobei "?" gleich lw ist, und bewirkt das Löschen
der Substituierung, d.h. das logische Laufwerk verweist auf
das gleichnamige physische. Zusätzlich wird der DPB ersetzt
und der aktuelle Pfad auf das Wurzelverzeichnis gesetzt.
Beginnt pfad mit einem Bindestrich "-", wird der
Laufwerksbezeichner nicht durch den DOS-Ruf "truename"
gewandelt, sondern nur in einen absoluten Pfad gewandelt.
Beginnt pfad mit zwei rechtsgeneigten Schrägstrichen '\\'
oder wurden zwei Bindestriche '--' vorangestellt, wird
angenommen, daß der Pfad bereits absolut ist. Das ist bei
Netzlaufwerken notwendig, bspw.:
A 011c:136a ... .... PHYS ..... A:"\
B 011c:138b ... .... PHYS ..... B:"\
C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
E 0000:0000 NET .... PHYS ..... \\E.\A."
==>.MSCD001 .<==
"SWSUBST a: d:\test" substituiert das logische Laufwerk A: nach
"C:\CC\SWSUBST\TEST"; wohingegen "SWSUBST a: -d:\test" A: nach
"D:\TEST" substituiert.
Der Bindestrich verhindert bei absoluten Pfaden auch den Zugriff
auf das Laufwerk, bspw.:
SWSUBST a b:
erzeugt einen Kritischen Fehler von DOS, falls sich keine Diskette
im Laufwerk befindet.
SWSUBST a -b:\
erzeugt auch dann keine Meldung, wenn keine Diskette im Laufwerk liegt.
Beide Möglichkeiten unterscheiden sich, so bietet bspw. der DOS-Befehl
SUBST die "-" Variante nicht, weshalb hier ein physisches Laufwerk D:
logisch nicht mehr zugreifbar ist.
ACHTUNG: Die Angabe von relativen Pfaden könnte zu unerwarteten
Ergebnissen führen. bspw.: bei obiger Lage:
SWSUBST a: -d:
ist gleichbedeutend mit "SWSUBST a: -d:\test". Der physische
Pfad pfad wird hier mit logischen Pfadkomponenten ergänzt.
Es wird jedoch nicht überprüft, ob pfad existiert oder nicht. Die
Verwendung nichtexistierender Pfade kann zu Dead Locks führen,
wenn DOS auf diese Laufwerke zugreifen will. Im einfachsten Fall
erhält man lediglich die Fehlermeldung, daß das Laufwerk und/oder
der Pfad nicht existiert.
Als Spezialfall gilt der Befehl "SWSUBST ? -?:\", wobei beide
"?"-Zeichen einem logischen Laufwerksbezeichner entsprechen. Dieses
Kommando ist gleichbedeutend mit "SWSUBST ? /d".
Kommando 6) /j lw pfad
"join"
analog Format 5), jedoch wird der Pfad nicht substituiert, sondern
das Laufwerk in den Pfad eingefügt (JOIN).
Kommando 7) /l[!] [gerät]
"list drivers"
Ist gerät nicht angegeben, werden alle installierten Geräte mit ihrem
Namen, welcher im Gerätekopf steht, ausgegeben, ab DOS 5 wird zusätzlich
der Name der Programmdatei ausgegeben, welche den Gerätetreiber
installierte, sofern er kein Standardtreiber ist.
Bsp.:
NUL
IFS$HLP$ <<D>> IFSHLP
CON <<D>> EANSI
MSCD001 <<D>> SGCDU
EMMXXXX0 <<D>> EMM386
XMSXXXX0 <<D>> HIMEM
SETVERXX <<D>> SETVER
CON
AUX
PRN
CLOCK$
COM1
LPT1
LPT2
LPT3
COM2
COM3
COM4
Falls in den << >> ein 'D' steht, ist der Name wahrscheinlich korrekt.
Ist gerät angegeben, wird nach einem Gerätetreiber gesucht, der mit
dieser Zeichenkette beginnt. Die Groß- und Kleinschreibung wird
ignoriert. Wird ein passender Eintrag gefunden, wird ERRORLEVEL auf 0
gesetzt, sonst auf einen Wert größer als Null.
Als Spezialbedeutung (mit ! am Ende) werden auch die Namen nach "<<D>>"
durchsucht.
Kommando 8) /m[!] [name]
"mcb"
Ist name nicht angegeben, zeigt dieses Kommando die MCB-Kette,
einschließlich der Speicherblöcke im UMB, an und versucht, in jedem der
Elemente wieder eine MCB-Kette anzuzeigen.
Bsp.:
0x025b M SD system_data
0x025c D KEYBUFX drv=KEYB-X system_drive
0x0281 D SETVER drv=SETVERXX system_drive
0x02a6 D HIMEM drv=XMSXXXX0 system_drive
0x02ef D EMM386 drv=EMMXXXX0 system_drive
0x03b3 D IFSHLP drv=IFS$HLP$ system_drive
0x04a5 F * system_files
0x0528 X system_fcbs
0x052e B system_buffers
0x052f M 0x5b5a
0x054f L system_lastdrive
0x0550 A 0x5c3a
0x057c M SC system_code
0x0581 M COMMAND
0x0582 C ommEMM 0x4e4f
0x0585 M COMMAND
0x0647 M lwort env=COMMAND
0x0688 M env=SWSUBST
0x06a3 M SWSUBST
0x9fff M SC system_code
0xb159 M SD system_data
0xb15a D EANSI drv=CON system_drive
0xb7fe M SC system_code
0xb7ff M SM system_memory
0xd800 Z UMB
0xd801 M SMARTDRV
Das Format ist wie folgt:
1. Einrückung zur Verdeutlichung, ob ein Speicherblock sich innerhalb
dem vorangegangenen befindet;
2. Adresse des Speicherblocks in hexadezimaler Form;
3. Speicherblocktyp;
4. Name des Programms, welches den Speicherblock erzeugt hast, er
wird nur durch die DOS-Funktion "Programmladen" eingetragen,
deshalb kann er leer oder unsinnig sein (z.B. 0x0688 und 0x054f);
5. Name des Programms, welches zu welchem der Speicherblock gehört, oder
Name des Treibers (beginnt mit "drv=") oder Name des Programms, zu
welchem diese Umgebung (beginnt mit "env=") gehört, die Form 0x<zahl>
wird benutzt, um Speicherblöcke ohne zugehöriges Programm zu
kennzeichnen (möglicherweise kein MCB!);
6. der Versuch, den Sinn des Speicherblockes zu erraten (beginnt mit
"system_").
Als Spezialbedeutung wird zwischen dem Speicherblockstyp und dem Namen
die Größe des Speicherblocks in Einheiten zu 16 Byte eingefügt und der
Name in ">> <<" eingeschlossen.
0x025b M 0x0320 >>SD<< system_data
0x025c D 0x0024 >>KEYBUFX<< drv=KEYB-X system_drive
0x0281 D 0x0024 >>SETVER<< drv=SETVERXX system_drive
0x02a6 D 0x0048 >>HIMEM<< drv=XMSXXXX0 system_drive
0x02ef D 0x00c3 >>EMM386<< drv=EMMXXXX0 system_drive
0x03b3 D 0x00f1 >>IFSHLP<< drv=IFS$HLP$ system_drive
0x04a5 F 0x0082 >>*<< system_files
0x0528 X 0x0005 >><< system_fcbs
0x052e B 0x0020 >><< system_buffers
0x052f M 0x3001 >><< 0x5b5a
0x054f L 0x002c >><< system_lastdrive
0x0550 A 0x0000 >><< 0x5c3a
0x057c M 0x0004 >>SC<< system_code
0x0581 M 0x0003 >><< COMMAND
0x0582 C 0x4946 >>ommEMM<< 0x4e4f
0x0585 M 0x00bc >>COMMAND<<
0x0647 M 0x0040 >>lwort<< env=COMMAND
0x0688 M 0x001a >><< env=SWSUBST
0x06a3 M 0x190b >>SWSUBST<<
0x9fff M 0x1159 >>SC<< system_code
0xb159 M 0x0077 >>SD<< system_data
0xb15a D 0x0076 >>EANSI<< drv=CON system_drive
0xb7fe M 0x2002 >>SC<< system_code
0xb7ff M 0x2000 >>SM<< system_memory
0xd800 Z 0x17ff >>UMB<<
0xd801 M 0x07d5 >>SMARTDRV<<
Ist name angegeben, wird der Name eines solchen Speicherblockes gesucht.
Speicherblöcke, die als Umgebung markiert sind ("env="), werden dabei
ignoriert; Groß- und Kleinschreibung ebenfalls. Ohne Spezialbedeutung
muß der Name lediglich mit name beginnen. Wird name gefunden, wird
ERRORLEVEL auf 0 gesetzt, ansonsten auf einen Wert größer als Null.
Kommando 9) -
Löst alle SUBST- und JOIN-Definitionen, die z.Z. existieren.
Kommando 10) --
Führt auf alle Laufwerke, deren NETWORK-Flag nicht gesetzt ist,
'SWSUBST ? -' aus.
Achtung: Dieses Kommando wechselt auf allen betroffenen Laufwerken ins
Wurzelverzeichnis.
Kommando 11) /j lw /d
oder /j lw -
oder /j /d lw
oder /u /d lw
oder /u lw /d
oder /u lw -
oder /d lw
oder lw /d
oder lw -
Löst die SUBST- oder/und JOIN-Definition von Laufwerk lw. Initialisiert
den DPB und legt das Wurzelverzeichnis als aktuelles Verzeichnis des
jeweiligen Laufwerks fest.
Kommando 12) lw pfad
Falls der Name der Programmdatei von SWSUBST nach JOIN unbenannt wurde,
wird Kommando 6) ausgeführt. In allen anderen Fällen Kommando 5).
Kommando 13) /k [-]pfad
"mkdir"
Der Pfad pfad wird angelegt. Fehlende Überverzeichnisse werden ebenfalls
angelegt. Ist der optionale Bindestrich '-' angegeben, werden evtl.
bestehende SUBST- bzw. JOIN-Verbindungen kurzzeitig gelöst.
Kommando 14) /q lw:{<op><flag>}
"query"
Dieses Kommando ist das Gegenstück zu Kommando 2) und fragt die
Laufwerkflags ab. Dabei wird ERRORLEVEL auf Null gesetzt, wenn die
Laufwerksflags der Bedingung genügen, ansonsten auf einen Wert größer
als Null.
Als Operationen <op> sind '+' für gesetzt und '-' für nicht gesetzt
zugelassen. Korrekte Flags <flags> sind: PHYSICAL, SUBST, NETWORK, JOIN,
HIDDEN und eine ein- bzw. zweistellige Dezimalzahl.
Unterschiede zu DOS' SUBST/JOIN:
DOS's SUBST/JOIN Aufrufe:
1) SUBST lw: pfad
2) SUBST lw: /d
3) SUBST
Unterschiede:
1) pfad kann nicht mit einem Bindestrich '-' beginnen;
falls lw bereits mittels SUBST bzw. JOIN verbunden ist, wird diese
Verbindung ohne Warnung gelöst;
2) falls lw keine SUBST Verbindung hat, wird kein Fehler erzeugt;
eine JOIN Verbindung wird ohne Warnung gelöst;
3) zeigt nicht nur die mit SUBST verbunden Laufwerke, sondern die
gesamte CDS Tabelle an.
Für JOIN gilt das analog.
Umgebungsvariablen:
Bevor die Optionen ausgewertet werden, wird die Zeichenkette
"%SKAUS% %SKAUS17% %SKAUS17A% %SKAUS17A2% "
ausgewertet. 'SKAUS...' sind Umgebungsvariablen, über die das DOS-
Handbuch mehr weiß.
Diese Zeichenkette darf alle Optionen enthalten, zusätzlich einige nur
hier gültigen Optionen ohne vorangestelltes Optionszeichen '/' (Groß-
und Kleinschreibung unwichtig), vor und nach dem Gleichheitszeichen '='
dürfen keine Leerzeichen stehen. Solange der Diagnosemodus ausgeschaltet
ist, werden unbekannte Optionen hier ignoriert.
Verfügbare Optionen:
'banner' Programmkurzbeschreibung anzeigen (Überschrift)
'nobanner' Programmkurzbeschreibung NICHT anzeigen
'silent' alle Ausgaben außer ERRORLEVEL ausschalten, auch Umleitungen
werden aufgehoben
'nosilent' Ausgaben nicht ändern
'errout=..' Fehlerausgaben umlenken:
.. == ! => in Standardausgabestrom mischen
.. == !# => in den Ausgabestrom Nummer # mischen
.. beginnt nicht mit einem Ausrufezeichen '!' =>
in die Datei .. schreiben
'errfile=.' Zeichenkettendatei, u.a. Fehlerausschriften:
. leer => eingebaute deutsche Texte nutzen
. == # => die Zahl # kennzeichnet den Anfang der Texte
in der Programmdatei
. keine Zahl => Datei, die die Texte enthält
[[s. Neue Texte einbringen]]
'makeerrfile' Beispiel einer Fehlertextdatei in deutsch auf die
Standardausgabe schreiben
[[s. Neue Texte einbringen]]
'dosish' DOS - Kompatibilität einschalten. Nachfolgend werden nur die
Formate analog "Unterschied zu DOS' SUBST/JOIN". Jedoch
werden DOS' SUBST/JOIN Format 3) kompatible Tabellen erzeugt.
JOIN und SUBST wird analog zu Kommando 12) unterschieden.
'nodosish' DOS - Kompatibilität abschalten
'diag' Diagnosemodus einschalten
'nodiag' Diagnosemodus ausschalten
Neue Texte einbringen:
Alle Ausgaben, die das Programm erzeugt, können verändert werden, z.B.
um sie einer anderen Sprache anzupassen. Die Standardsprache ist
deutsch.
Hierzu ist folgenden Schritten zu folgen:
1) Eine der vier Umgebungsvariablen auf "makeerrfile" setzen.
2) Programm aufrufen und die Ausgabe in eine Datei umleiten, z.B.
"SWSUBST >swsubst.q".
3) Die Umgebungsvariable auf ihren alten Wert setzen oder löschen.
4) Die Datei "swsubst.q" ändern. Dabei sind die Zeilen ">>#" nicht
zuändern, außer wenn der jeweilige Text NICHT geändert werden soll,
dann MUß die Zeile gelöscht werden.
Jeder Eintrag kann nicht länger werden als der Hilfetext (Text nach
">>0"), da jener Bereich intern als Puffer fungiert. Deshalb MUß der
Hilfetext immer umdefiniert werden, oder nicht aus der Datei
gestrichen.
Der Text enthält Zeichenfolgen der Form "%??", welche Einfügungen
kennzeichnet. Diese Einfügungen können in der Reihenfolgen NICHT
geändert werden, jedoch dürfen sie vom Ende her lückenlos entfallen.
5) Verfügbarmachen des neuen Textes über eine Umgebungsvariable (die
Variable SKAUS eignet sich nicht) und die Option "errfile=".
Variante 1) Option "errfile=...\swsubst.q" mit ... dem absoluten
Pfad zur Datei.
Variante 2) Ermitteln der Länge der Programmdatei von SWSUBST.
Anhängen der Fehlertextdatei an die Programmdatei, z.B. mittels
"copy /b swsubst.exe + swsubst.q swsubst1.exe". Setzen der Option
"errfile=#", mit # der oben ermittelten Länge. Diese Zahl ist in C
Notation, d.h. beginnt die Ziffer mit '0' ist sie oktal, mit '0x'
oder '0X' hexadezimal, beginnt sie mit einer Ziffer zwischen 1 und 9
ist sie dezimal. Um weitere Anfügungen zu ermöglichen, sollte noch
das Textendekennzeichen ^Z (ASCII 1A hex bzw. 26 dez) angehängt
werden, sofern es nicht schon geschehen ist.
Um z.B. statt deutschen Texten englische zu erhalten, können die
vordefinierten [siehe Datei SWSUBST.LNG] verwendet werden, bzw. statt
der vordefinierten englischen die deutschen, indem "errfile=" ohne
Argument verwendet wird.
Die SWSUBST - Programmdatei darf mit angehangenen Textdatei weitergegeben
werden, sofern das in der Datei SWSUBST.LNG vermerkt wird.
Autor:
Steffen Kaiser
Ernst-Thälmann-Straße 2
D-39606 Iden
Deutschland - Germany