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   
Text File  |  1994-12-20  |  30KB  |  780 lines

  1. $Id: SWSUBST.TXT 2.0 1994/12/21 09:16:02 ska Rel ska $
  2.  
  3. Das ist die Dokumentationsdatei für SWSUBST.EXE.
  4. An English version of this text resides in the file SWSUBST.ENG.
  5.  
  6. Merke:
  7. ++ Die Angabe von relativen Pfaden kann unerwartete Ergebnisse nach sich
  8.    ziehen.  
  9. ++ Nicht existierende Pfade können das System in einen
  10.    Dead-Lock führen.
  11. ++ Netz-Laufwerke sind nur bedingt nutzbar.
  12. ++ Die Verwendung innerhalb Multitaskumgebungen, wie MS-Windows, kann
  13.    einen Systemabsturz erzeugen oder kann dazu führen, daß falsche
  14.    physische Pfade genutzt werden.
  15. ++ MS Windows v3.11 (for Workgroups) behandelt Festplatten wie
  16.    Netzwerke, so daß SWSUBST nur bedingt verwendbar ist, wenn der 32-Bit
  17.    Zugriff aktiv ist.
  18. ++ Aufgrund der unterschiedlichen CDS läuft das Programm auf den meisten
  19.    DR-DOS-Versionen nicht.
  20. ++ Der physische Pfad von Netzlaufwerken kann nicht erzeugt werden.
  21. ++ Wird die Programmdatei in "JOIN" umbenannt, wird standardmäßig JOIN
  22.    und nicht SUBST ausgeführt.
  23.  
  24. Kurzbeschreibung:
  25. Das Programm SWSUBST:
  26. - ersetzt und erweitert die DOS-Befehle SUBST und JOIN;
  27. - tauscht zwei Laufwerksbuchstaben gegeneinander aus;
  28. - hebt alle SUBST/JOIN Verbindungen mit einem Befehl auf;
  29. - legt einen Pfad mit allen notwendigen Überverzeichnissen an;
  30. - erlaubt das direkte Ändern und die Abfrage der Laufwerksflags;
  31. - ermöglicht das Suchen in und Anzeigen der installierten Geräte und der
  32.   Speicherblockkette (MCB chain);
  33. - akzeptiert die Angabe von Laufwerken sowohl über das Treiberkennzeichen
  34.   als auch über die Laufwerkskennzeichnung;
  35. - ermittelt die Laufwerksnummern;
  36. - erlaubt Mehrsprachigkeit; deutsche und englische Texte vordefiniert.
  37.  
  38.  
  39.  
  40. Inhalt:
  41. - Dateien im Paket
  42. - Garantien
  43. - Optionen
  44. - Kommandos
  45. - Unterschied zu DOS' SUBST/JOIN
  46. - Umgebungsvariablen
  47. - Neue Texte einbringen
  48. - Autor
  49.  
  50.  
  51. Dateien im Paket:
  52. SWSUBST.EXE    Programm
  53. SWSUBST.TXT    Programmbeschreibung in Deutsch
  54. SWSUBST.ENG    Programmbeschreibung in Englisch
  55. SWSUBST.LNG Unterstützte Sprachen
  56.  
  57. Garantien:
  58. SWSUBST ist Freeware; es muß weder Entgeld entrichtet noch eine
  59. Registrierung durchgeführt werden. Es darf weitergegeben werden, solange
  60. alle drei Dateien zusammen und unverändert, Ausnahme siehe "Neue Texte
  61. einbringen", bleiben. Der Weitergebende darf in keiner Weise davon
  62. profitieren.
  63.  
  64. Der Autor von SWSUBST kann für keinerlei Schäden haftbar gemacht werden.
  65. Hierbei ist unerheblich, ob die Schäden direkt oder indirekt entstehen
  66. oder ob auf die Möglichkeit einer Schädigung hingewiesen wurde, oder
  67. nicht.  Das Programm SWSUBST darf nur auf eigene Gefahr genutzt werden.
  68.  
  69. Disclaimer
  70.  
  71. In no event will the Author be liable to users for any damages, including 
  72. but not limited to any lost profits, lost savings or other incidental or 
  73. consequential damages arising out of the use or the inability to use this 
  74. program, even if the Author has been advised of the possibility of such 
  75. damages, or for any claim by other party. 
  76.  
  77.  
  78. SWSUBST is FreeWare; there is no charge for using it and it may be
  79. distributed freely so long as the files are kept together and unaltered,
  80. except see "Including of new Texts". You may neither sell nor profit
  81. from distribution of SWSUBST in any way.
  82.  
  83.  
  84.  
  85. Programmnutzung:
  86.  
  87. SWSUBST [ {option} ] [kommando]
  88.  
  89. Optionen)
  90.  
  91. - Optionen können mit allen Kommandos angegeben werden, obwohl sie
  92.   nicht für alle gültig sind.
  93. - Optionen dürfen nicht gemischt, jedoch in beliebiger Reihenfolge
  94.   angegeben werden.
  95. - In Umgebungsvariablen können spezielle Optionen gesetzt werden.
  96.  
  97.  
  98. Die allgemeine Form einer Option lautet:
  99.     /[+-]?.[!]
  100.  
  101. wobei steht   für:
  102. /    der Schrägstrich zur Kennzeichnung der Option
  103. [+-] ein optionales Plus bzw. Minus. Normalerweise schalten Optionen
  104.      zwischen "an" und "aus" hin und her. Am Anfang stehen alle Option auf
  105.      "aus", d.h. /a schaltet die Option "an", während /a /a die Option "a"
  106.      erst "an", dann wieder "aus" schaltet.
  107.      /+a schaltet die Option "a" "an", /-a "aus".
  108.      Ist ein Plus bzw. ein Minus angegeben, wird [!] (s. dort) ignoriert.
  109. ?    das Zeichen (s.u.), welches für den Namen der jeweiligen Option steht
  110. .    beliebige oder kein Zeichen, d.h. /a ist identisch mit /aaaaa, /a../34,
  111.     jedoch nicht /aa! (s.u.)
  112. [!] ein optionales Ausrufezeichen am Ende einer Option. Damit kann eine
  113.     Spezialbedeutung der jeweiligen Option aktiviert werden (vgl. [+-]).
  114.     Diese Spezialbedeutung wird aufgehoben, wenn die Option ein weiteres
  115.     Mal verwendet wird, z.B. /a! /a schaltet die Option "a" auf "ein" unter
  116.     Beachtung der Spezialbedeutung und dann wieder auf "aus".
  117.  
  118. Optionskennzeichen:
  119. #: Unter der CDS-Übersicht soll die Anzahl der eingefügten Laufwerke
  120.    (JOIN) angezeigt werden. Hierbei werden die entsprechenden Laufwerke in
  121.    der Tabelle gezählt und mit einem DOS-internen Flag verglichen.
  122.    Spezialbedeutung: Unterscheiden sich beide Werte, wird das DOS-interne
  123.    Flag, auf den Wert aus der Tabelle gesetzt.
  124. a: Nach dem Ausführen des Kommandos, soll die CDS-Übersicht ausgegeben
  125.    werden; diese Option wird für die Kommandos "/l" and "/m" ignoriert.
  126. f: An einigen Stellen können Namen gespeichert sein. SWSUBST nimmt an,
  127.    daß diese Namen rechtens sind, wenn sie aus Zeichen zwischen ASCII 32
  128.    und 126 bestehen, d.h. keine Umlaute, griechischen Zeichen u.ä.  Ist
  129.    diese Option angegeben, werden alle Namen als korrekt angesehen,
  130.    Zeichen außerhalb des oben angegebenen Bereichs werden in der
  131.    hexadezimaler Form: \x?? ausgegeben, wobei ?? die stets zweistellige
  132.    hexadezimale Darstellung des ASCII-Wertes des Zeichen ist.
  133. c: Legt bei JOIN bzw. SUBST den erforderlichen Pfad an und erzeugt im
  134.    Fehlerfall eine Warnung, falls der Pfad weder existiert noch anlegbar
  135.    ist. Diese Option ist mit Vorsicht zu geniessen, da mit den
  136.    physischen Pfaden gearbeitet werden muß, welche logisch evtl.  nicht
  137.    erreichbar sind. Laufwerke, welche mit ASSIGN umgewiesen sind,
  138.    erzeugen stets Fehler. Dabei können Verzeichnisse in nicht
  139.    erwünschten Pfaden erstellt werden.
  140.    Spezialbedeutung: Bei SUBST wird der Pfad nicht angelegt.
  141. _: Neben den Treibernamen sollen in der CDS-Übersicht alle Attribute,
  142.    auch die ohne (bekannte) Bedeutung ausgeben werden.
  143.  
  144.  
  145. Kommandos:
  146.  
  147. Verfügbarkeit:
  148. Kommando  1)
  149. Kommando  2) lw:{<op><flag>}
  150. Kommando  3) /w lw
  151. Kommando  4) /s lw1 lw2
  152. Kommando  5) /u lw [-]pfad
  153. Kommando  6) /j lw [-]pfad
  154. Kommando  7) /l[!] [gerät]
  155. Kommando  8) /m[!] [name]
  156. Kommando  9) -
  157. Kommando 10) --
  158. Kommando 11) /d lw   bzw.  lw -
  159. Kommando 12) lw [-]pfad
  160. Kommando 13) /k [-]pfad
  161. Kommando 14) /q lw:{<op><flag>}
  162.  
  163.  
  164. Die allgemeine Form von Kommandos ist identisch mit der von Optionen,
  165. jedoch ist [+-] nicht erlaubt. Abkürzend wird hier deshalb nur "/?"
  166. geschrieben.
  167.  
  168. Spezifikation von Laufwerksbezeichnern:
  169. lw steht für ein Laufwerkskennzeichen. Es können einzelne Buchstaben
  170. oder ein Buchstabe mit anschließendem Doppelpunkt verwendet werden, d.h.
  171. 'a' und 'a:' sind identisch. Innerhalb von Pfadangaben ist die zweite
  172. Form zu verwenden. Manche Treiber fügen in einem ansonsten nicht
  173. benutzten Bereich einen Namen ein. Dieser kann ebenfalls zur Laufwerks-
  174. identifizierung genutzt werden. Bsp.: Ist der Treibername "DRIVR-1",
  175. kann auf ihn mittels ':drivr-1:' bezug genommen werden. Groß- und Klein-
  176. schreibung wird ignoriert. Der Name darf abgekürzt werden, d.h. im
  177. obigen Fall könnte man auch ':drivr:' oder sogar ':d:' schreiben.
  178.  
  179. Sollten zwei oder mehr Treiber über denselben Namen verfügen, kann eine
  180. Nummer verwendet werden, d.h. sollten folgende Treiber existieren:
  181.     A 011c:136a ... .... PHYS ..... A:"\
  182.         ==>.DRIVER.<==
  183.     B 011c:138b ... .... PHYS ..... B:"\
  184.         ==>.DRIVER.<==
  185.     C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  186.         ==>.DRIVER.<==
  187.     D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  188.     E 0000:0000 NET .... PHYS ..... \\E.\A."
  189.         ==>.MSCD001 .<==
  190. Auf Laufwerk A: kann mittels :d:, :dr:, :dri: etc. zugegriffen werden,
  191. auf Laufwerk B: vermittels :1:d:, :1:dr:, :1:dri:, :1:driv: etc.  auf
  192. Laufwerk C: mit :2:d:, :2:dr:, :2:dri:, :2:driv:, :2:drive:, :2:driver:.
  193. In der Übersicht werden die Punkte hinter ">" bzw. vor "<" vom Programm
  194. eingesetzt und dürfen nicht mit angegeben werden. Leerzeichen innerhalb
  195. des Namens sind ein Problem, da die Laufzeitumgebung das Leerzeichen zum
  196. Trennen der Parameter verwendet.
  197.  
  198. Eine weitere Möglichkeit, Laufwerksbuchstaben zu erzeugen, ist die Suche
  199. nach den Laufwerkskennzeichen (volume label). Hierbei ist die Form:
  200. '::...:' bzw.  ':-:...:' zu verwenden, wobei '...' für den Beginn des
  201. Kennzeichens steht. Ist das Minus '-' angegeben, werden SUBST und JOIN
  202. Verbindungen für dem Test gelöst.
  203. Achtung: Das Format ':-:...:' impliziert nicht, daß der entstehende Pfad
  204. auch physisch interpretiert wird.
  205.  
  206.  
  207. Kommando 1)
  208.  
  209. ohne kommando
  210.  
  211. Anzeiger aller mit LASTDRIVE in CONFIG.SYS eingerichteten Laufwerke.
  212.  
  213. Es wird folgende Ausgabe erzeugt: (bspw.)
  214. A 011c:136a ... .... PHYS ..... ...... A:"\
  215.     _-P--------------_
  216. B 011c:138b ... .... PHYS ..... ...... B:"\
  217.     _-P--------------_
  218. C 011c:13ac ... .... PHYS ..... ...... C:"\CC\SWSUBST
  219.     _-P--------------_
  220. D 011c:13cd ... .... PHYS ..... ...... D:"\
  221.     _-P--------------_
  222. E 0000:0000 ... .... .... ..... ...... E:"\
  223.     _----------------_
  224. F 0000:0000 ... .... .... ..... ...... F:"\
  225.     _----------------_
  226. G 0000:0000 NET .... PHYS ..... HIDDEN \\G.\A."
  227.     ==>.MSCD001 .<==    _NP------H-------_
  228.  
  229. Die Spalten haben folgende Bedeutung:
  230. 1 - Logischer Laufwerksbezeichner, mithilfe dessen der DOS-Nutzer das
  231.     Laufwerk ansprechen kann.
  232. 2 - Adresse des Disk Parameter Block (DPB), welcher das Laufwerk in
  233.     physischer Hinsicht beschreibt. Sie ist an sich nicht von Interesse
  234.     (außer halt für mich).
  235. 3 - NET: Laufwerk ist mit den Network Redirector integriert, z.B. CD-ROM.
  236. 4 - JOIN: Physisches Laufwerk ist mittels DOS-Befehl JOIN in den 
  237.     Verzeichnisbaum integriert. (s. physischer Pfad)
  238. 5 - PHYS: Ist stets gesetzt, kennzeichnet ein benutzbares Laufwerk. Auch
  239.     nicht-physische Laufwerke, wie DoubleSpace oder Stacker, bekommen diese
  240.     Kennung.
  241. 6 - SUBST: Logisches Laufwerk ist einem Pfad eines anderen physischen
  242.     Laufwerks zugeordnet.
  243. 7 - HIDDEN: Ein Flag, welches das Laufwerk für Netzwerktreiber(?) unsichtbar
  244.     machen soll.
  245. 8 - Physische Pfad: Der Laufwerksbezeichner in Spalte 7 darf nicht mit dem
  246.     logischen Laufwerksbezeichner verwechselt werden, hier kennzeichnet
  247.     er ein physisches Laufwerk, also 
  248.         A: erstes Diskettenlaufwerk
  249.         B: zweites Diskettenlaufwerk
  250.         C: primäre Partition der ersten Festplatte
  251.         D: primäre Partition der zweiten Festplatte
  252.         E-?: alle weiteren Partitionen der ersten Festplatte
  253.         ??-*: alle weiteren Partitionen der zweiten Festplatte
  254.  
  255.     Das Zeichen >>"<< ist nicht Teil des Pfades, es kennzeichnet die Stelle,
  256.     wo sich das Wurzelverzeichnis befindet. bspw.
  257.         C  Befindet man sich logischen Verzeichnis "C:\", befindet man sich
  258.             auch im physischen Verzeichnis "C:\".
  259.         D Befindet man sich im logischen Verzeichnis "D:\", befindet man
  260.             sich im physischen Verzeichen "C:\CC\SWSUBST".
  261.  
  262.     Der Teil hinter dem >>"<<-Zeichen kennzeichnet den aktuellen Pfad bzgl.
  263.     des Wurzelverzeichnisses, also hier: "D:\TEST" und "C:\CC\SWSUBST".
  264.  
  265. Falls der Blocktreiber einen Namen in einem ansonsten unbenutzten
  266. Bereich ablegt, wird dieser unter der jeweiligen Zeile als
  267.     ==>.???.<==
  268. mit dem Treibernamen ??? angezeigt. Treiber können maximal 7 bzw. 8
  269. Zeichen lang sein.
  270.  
  271. Neben diesem Namen bzw. allein auf der nächsten Zeile wird der Spiegel
  272. aller Attribute angezeigt, wenn die Option '/_' eingeschalten ist:
  273. _-P--------------_
  274. Bekannte Optionen werden im gesetzten Zustand mit ihrem Anfangs-
  275. buchstaben gekennzeichnet, ansonsten steht '-' für nicht gesetzt, '+'
  276. für gesetzt. Die beiden Unterstriche '_' stehen immer links und rechts
  277. daneben.
  278.  
  279. Ist sowohl PHYSICAL als auch NETWORK gesetzt, handelt es sich um ein 
  280. Installable File System (IFS) -- Installierbares Dateisystem mittels
  281. des Network Redirectors (z.B. MSCDEX).
  282.  
  283.  
  284.  
  285. Kommando 2) lw:{<op><flag>}
  286.  
  287. Verändert die Flags (Spalten 3-6) des Laufwerks lw. <flag> kann
  288. PHYSICAL, JOIN, SUBST, NETWORK, HIDDEN oder eine ein- oder zweistellige
  289. Dezimalzahl zwischen 0 und 15 (Groß- und Kleinschreibung unwichtig) bzw.
  290. eine beliebige, aus mindestens einem Zeichen bestehende Abkürzung sein.
  291. <op> kann sein: '+' für setzen, '-' löschen, '=' das Flag setzen, die
  292. anderen löschen. Im Attributspiegel bezeichnet 0 das rechte Flag.
  293.  
  294. Bsp.:
  295.  
  296.     A 011c:136a ... .... PHYS ..... A:"\
  297.     B 011c:138b ... .... PHYS ..... B:"\
  298.     C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  299.     D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  300.     E 0000:0000 NET .... PHYS ..... \\E.\A."
  301.         ==>.MSCD001 .<==
  302. und
  303.     SWSUBST a=j+s
  304.  
  305. führt zu:
  306.  
  307.     A 011c:136a ... JOIN .... SUBST A:"\
  308.     B 011c:138b ... .... PHYS ..... B:"\
  309.     C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  310.     D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  311.     E 0000:0000 NET .... PHYS ..... \\E.\A."
  312.         ==>.MSCD001 .<==
  313.  
  314. und
  315.     SWSUBST a=network=join=phys
  316.  
  317. führt zu:
  318.  
  319.     A 011c:136a ... .... PHYS ..... A:"\
  320.     B 011c:138b ... .... PHYS ..... B:"\
  321.     C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  322.     D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  323.     E 0000:0000 NET .... PHYS ..... \\E.\A."
  324.         ==>.MSCD001 .<==
  325.  
  326. Als spezielle Flags sind noch OFF und ON zugelassen. OFF entspricht
  327. -NETWORK-PHYS-JOIN-SUBST, d.h. es löscht alle Flags, das Laufwerk ist
  328. fürderhin nicht mehr ansprechbar. Der Operator darf beliebig sein, d.h.
  329. '+', '-' oder '='. Desweitern wird implizit 'swsubst <lw> -' ausgeführt.
  330. s. das Beispiel unten. ON muß immer ausgeschrieben werden und entspricht
  331. =PHYS, d.h. es macht das Laufwerk verfügbar, sofern es sich nicht um ein
  332. Netzlaufwerk o.ä. handelt. Auch hierbei ist der Operator beliebig. ON ist
  333. lediglich ein Zugeständnis: >>wenn OFF, dann auch ON<<.
  334. In beiden Fällen werden auch alle anderen Elemente innerhalb der CDS
  335. geändert, so daß für DOS das Laufwerk OFF "aus" bzw. ON "an" geschalten
  336. wird. Leider muß ON nicht gleichbedeutend sein mit "korrekt".
  337.  
  338.  
  339.     A 011c:136a ... .... PHYS ..... A:"\
  340.     B 011c:138b ... .... PHYS ..... B:"\
  341.     C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  342.     D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  343.     E 0000:0000 NET .... PHYS ..... \\E.\A."
  344.         ==>.MSCD001 .<==
  345. und
  346.     SWSUBST d:=off
  347.  
  348. führt zu:
  349.  
  350.     A 011c:136a ... .... PHYS ..... A:"\
  351.     B 011c:138b ... .... PHYS ..... B:"\
  352.     C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  353.     D 0000:0000 ... .... .... ..... D:"\
  354.     E 0000:0000 NET .... PHYS ..... \\E.\A."
  355.         ==>.MSCD001 .<==
  356.  
  357.  
  358.  
  359. Kommando 3) /w lw
  360. "which is"
  361.  
  362. Gibt als ERRORLEVEL die Nummer des Laufwerks zurück und produziert
  363. ansonsten keine Ausgaben.
  364.  
  365. ERRORLEVEL == 65 => A:
  366.               66 => B:
  367.             ...    ...
  368.  
  369. ERRORLEVEL == 1 => Laufwerk existiert nicht.
  370.  
  371. Sinnvoll zu verwenden ist diese Funktion, um von einem Treibernamen den
  372. Laufwerksbuchstaben zu ermitteln, um zu testen, ob dieses Laufwerk
  373. mittels LASTDRV in der CONFIG.SYS vorbereitet wurde, oder um den
  374. aktuellen Laufwerksbuchstaben von einem Laufwerkkennzeichen (volume
  375. label) zu ermitteln.
  376.  
  377. Die Nummern liegen ab 65 (ASCII 'A'), weil viele DOS-Kommandoprozessoren
  378. ERRORLEVEL auf eine Nummer zwischen 1 bis 12 setzen, falls sie das Programm
  379. nicht laden konnten.
  380.  
  381.  
  382.  
  383. Kommando 4) /s lw1 lw2
  384. "swap"
  385.  
  386. Tauscht die Einträge der Laufwerke lw1 und lw2 aus.
  387.  
  388.         A 011c:136a ... .... PHYS ..... A:"\
  389.         B 011c:138b ... .... PHYS ..... B:"\
  390.         C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  391.         D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  392.         E 0000:0000 NET .... PHYS ..... \\E.\A."
  393.             ==>.MSCD001 .<==
  394.  
  395.     und 
  396.         SWSUBST /s a c
  397.  
  398.     führt zu:    
  399.  
  400.         A 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  401.         B 011c:138b ... .... PHYS ..... B:"\
  402.         C 011c:136a ... .... PHYS ..... A:"\
  403.         D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  404.         E 0000:0000 NET .... PHYS ..... \\E.\A."
  405.             ==>.MSCD001 .<==
  406.  
  407.  
  408. Kommando 5) /u lw pfad
  409. "subst"
  410.  
  411. Substituiert das Laufwerk lw mit dem Pfad pfad.
  412. Die Parameter müssen folgendes Format haben:
  413.  
  414. lw - Ein Buchstabe evtl. gefolgt von einem Doppelpunkt, bspw.
  415.      "A", "a", "A:" oder "a:" sind legal und verweisen auf das
  416.      logische Laufwerk A:. Wurde ein Netzlaufwerk oder ein Laufwerk
  417.      größer als LASTDRV angegeben, wird ein Fehler erzeugt.
  418.  
  419. pfad - Der physische Pfad, auf den das logische Laufwerk verweisen soll.
  420.  
  421.        Ist pfad "-", "/d" oder "/D" ist diese Angabe gleichbedeutend
  422.        mit "-?:\", wobei "?" gleich lw ist, und bewirkt das Löschen
  423.        der Substituierung, d.h. das logische Laufwerk verweist auf
  424.        das gleichnamige physische. Zusätzlich wird der DPB ersetzt
  425.        und der aktuelle Pfad auf das Wurzelverzeichnis gesetzt.
  426.  
  427.        Beginnt pfad mit einem Bindestrich "-", wird der
  428.        Laufwerksbezeichner nicht durch den DOS-Ruf "truename"
  429.        gewandelt, sondern nur in einen absoluten Pfad gewandelt.
  430.        Beginnt pfad mit zwei rechtsgeneigten Schrägstrichen '\\'
  431.        oder wurden zwei Bindestriche '--' vorangestellt, wird
  432.        angenommen, daß der Pfad bereits absolut ist. Das ist bei
  433.        Netzlaufwerken notwendig, bspw.:
  434.  
  435.         A 011c:136a ... .... PHYS ..... A:"\
  436.         B 011c:138b ... .... PHYS ..... B:"\
  437.         C 011c:13ac ... .... PHYS ..... C:"\CC\SWSUBST
  438.         D 011c:13ac ... .... PHYS SUBST C:\CC\SWSUBST"\TEST
  439.         E 0000:0000 NET .... PHYS ..... \\E.\A."
  440.             ==>.MSCD001 .<==
  441.  
  442.        "SWSUBST a: d:\test" substituiert das logische Laufwerk A: nach
  443.        "C:\CC\SWSUBST\TEST"; wohingegen "SWSUBST a: -d:\test" A: nach
  444.        "D:\TEST" substituiert.
  445.  
  446.        Der Bindestrich verhindert bei absoluten Pfaden auch den Zugriff
  447.        auf das Laufwerk, bspw.:
  448.            SWSUBST a b:
  449.        erzeugt einen Kritischen Fehler von DOS, falls sich keine Diskette
  450.        im Laufwerk befindet.
  451.            SWSUBST a -b:\
  452.        erzeugt auch dann keine Meldung, wenn keine Diskette im Laufwerk liegt.
  453.  
  454.        Beide Möglichkeiten unterscheiden sich, so bietet bspw. der DOS-Befehl
  455.        SUBST die "-" Variante nicht, weshalb hier ein physisches Laufwerk D:
  456.        logisch nicht mehr zugreifbar ist.
  457.  
  458.        ACHTUNG: Die Angabe von relativen Pfaden könnte zu unerwarteten 
  459.                    Ergebnissen führen. bspw.: bei obiger Lage:
  460.                        SWSUBST a: -d:
  461.                    ist gleichbedeutend mit "SWSUBST a: -d:\test". Der physische
  462.                    Pfad pfad wird hier mit logischen Pfadkomponenten ergänzt.
  463.  
  464.            Es wird jedoch nicht überprüft, ob pfad existiert oder nicht. Die
  465.            Verwendung nichtexistierender Pfade kann zu Dead Locks führen,
  466.            wenn DOS auf diese Laufwerke zugreifen will. Im einfachsten Fall
  467.            erhält man lediglich die Fehlermeldung, daß das Laufwerk und/oder
  468.            der Pfad nicht existiert.
  469.  
  470.            Als Spezialfall gilt der Befehl "SWSUBST ? -?:\", wobei beide
  471.            "?"-Zeichen einem logischen Laufwerksbezeichner entsprechen. Dieses
  472.         Kommando ist gleichbedeutend mit "SWSUBST ? /d".
  473.  
  474.  
  475. Kommando 6) /j lw pfad
  476. "join"
  477.  
  478.     analog Format 5), jedoch wird der Pfad nicht substituiert, sondern
  479.     das Laufwerk in den Pfad eingefügt (JOIN).
  480.  
  481.  
  482. Kommando 7) /l[!] [gerät]
  483. "list drivers"
  484.  
  485. Ist gerät nicht angegeben, werden alle installierten Geräte mit ihrem
  486. Namen, welcher im Gerätekopf steht, ausgegeben, ab DOS 5 wird zusätzlich
  487. der Name der Programmdatei ausgegeben, welche den Gerätetreiber
  488. installierte, sofern er kein Standardtreiber ist.
  489.     Bsp.:
  490.  
  491. NUL     
  492. IFS$HLP$ <<D>> IFSHLP  
  493. CON      <<D>> EANSI   
  494. MSCD001  <<D>> SGCDU   
  495. EMMXXXX0 <<D>> EMM386  
  496. XMSXXXX0 <<D>> HIMEM   
  497. SETVERXX <<D>> SETVER  
  498. CON     
  499. AUX     
  500. PRN     
  501. CLOCK$  
  502. COM1    
  503. LPT1    
  504. LPT2    
  505. LPT3    
  506. COM2    
  507. COM3    
  508. COM4    
  509.  
  510. Falls in den << >> ein 'D' steht, ist der Name wahrscheinlich korrekt.
  511.  
  512. Ist gerät angegeben, wird nach einem Gerätetreiber gesucht, der mit
  513. dieser Zeichenkette beginnt. Die Groß- und Kleinschreibung wird
  514. ignoriert. Wird ein passender Eintrag gefunden, wird ERRORLEVEL auf 0
  515. gesetzt, sonst auf einen Wert größer als Null.
  516. Als Spezialbedeutung (mit ! am Ende) werden auch die Namen nach "<<D>>"
  517. durchsucht.
  518.  
  519.  
  520. Kommando 8) /m[!] [name]
  521. "mcb"
  522.  
  523. Ist name nicht angegeben, zeigt dieses Kommando die MCB-Kette,
  524. einschließlich der Speicherblöcke im UMB, an und versucht, in jedem der
  525. Elemente wieder eine MCB-Kette anzuzeigen.
  526.     Bsp.:
  527.  
  528. 0x025b M SD system_data
  529.     0x025c D KEYBUFX  drv=KEYB-X   system_drive
  530.     0x0281 D SETVER   drv=SETVERXX system_drive
  531.     0x02a6 D HIMEM    drv=XMSXXXX0 system_drive
  532.     0x02ef D EMM386   drv=EMMXXXX0 system_drive
  533.     0x03b3 D IFSHLP   drv=IFS$HLP$ system_drive
  534.     0x04a5 F *  system_files
  535.     0x0528 X   system_fcbs
  536.     0x052e B   system_buffers
  537.         0x052f M  0x5b5a
  538.     0x054f L   system_lastdrive
  539.         0x0550 A  0x5c3a
  540. 0x057c M SC system_code
  541. 0x0581 M  COMMAND
  542.     0x0582 C ommEMM 0x4e4f
  543. 0x0585 M COMMAND 
  544. 0x0647 M lwort env=COMMAND
  545. 0x0688 M  env=SWSUBST
  546. 0x06a3 M SWSUBST 
  547. 0x9fff M SC system_code
  548. 0xb159 M SD system_data
  549.     0xb15a D EANSI    drv=CON      system_drive
  550. 0xb7fe M SC system_code
  551.     0xb7ff M SM       system_memory
  552.     0xd800 Z UMB      
  553. 0xd801 M SMARTDRV 
  554.  
  555. Das Format ist wie folgt:
  556. 1. Einrückung zur Verdeutlichung, ob ein Speicherblock sich innerhalb
  557.    dem vorangegangenen befindet;
  558. 2. Adresse des Speicherblocks in hexadezimaler Form;
  559. 3. Speicherblocktyp;
  560. 4. Name des Programms, welches den Speicherblock erzeugt hast, er
  561.    wird nur durch die DOS-Funktion "Programmladen" eingetragen,
  562.    deshalb kann er leer oder unsinnig sein (z.B. 0x0688 und 0x054f);
  563. 5. Name des Programms, welches zu welchem der Speicherblock gehört, oder
  564.    Name des Treibers (beginnt mit "drv=") oder Name des Programms, zu
  565.    welchem diese Umgebung (beginnt mit "env=") gehört, die Form 0x<zahl>
  566.    wird benutzt, um Speicherblöcke ohne zugehöriges Programm zu
  567.    kennzeichnen (möglicherweise kein MCB!);
  568. 6. der Versuch, den Sinn des Speicherblockes zu erraten (beginnt mit
  569.    "system_").
  570.  
  571. Als Spezialbedeutung wird zwischen dem Speicherblockstyp und dem Namen
  572. die Größe des Speicherblocks in Einheiten zu 16 Byte eingefügt und der
  573. Name in ">> <<" eingeschlossen.
  574.  
  575. 0x025b M 0x0320 >>SD<< system_data
  576.     0x025c D 0x0024 >>KEYBUFX<< drv=KEYB-X   system_drive
  577.     0x0281 D 0x0024 >>SETVER<< drv=SETVERXX system_drive
  578.     0x02a6 D 0x0048 >>HIMEM<< drv=XMSXXXX0 system_drive
  579.     0x02ef D 0x00c3 >>EMM386<< drv=EMMXXXX0 system_drive
  580.     0x03b3 D 0x00f1 >>IFSHLP<< drv=IFS$HLP$ system_drive
  581.     0x04a5 F 0x0082 >>*<<  system_files
  582.     0x0528 X 0x0005 >><<  system_fcbs
  583.     0x052e B 0x0020 >><<  system_buffers
  584.         0x052f M 0x3001 >><< 0x5b5a
  585.     0x054f L 0x002c >><<  system_lastdrive
  586.         0x0550 A 0x0000 >><< 0x5c3a
  587. 0x057c M 0x0004 >>SC<< system_code
  588. 0x0581 M 0x0003 >><< COMMAND
  589.     0x0582 C 0x4946 >>ommEMM<< 0x4e4f
  590. 0x0585 M 0x00bc >>COMMAND<< 
  591. 0x0647 M 0x0040 >>lwort<< env=COMMAND
  592. 0x0688 M 0x001a >><< env=SWSUBST
  593. 0x06a3 M 0x190b >>SWSUBST<< 
  594. 0x9fff M 0x1159 >>SC<< system_code
  595. 0xb159 M 0x0077 >>SD<< system_data
  596.     0xb15a D 0x0076 >>EANSI<< drv=CON      system_drive
  597. 0xb7fe M 0x2002 >>SC<< system_code
  598.     0xb7ff M 0x2000 >>SM<< system_memory
  599.     0xd800 Z 0x17ff >>UMB<< 
  600. 0xd801 M 0x07d5 >>SMARTDRV<< 
  601.  
  602.  
  603. Ist name angegeben, wird der Name eines solchen Speicherblockes gesucht.
  604. Speicherblöcke, die als Umgebung markiert sind ("env="), werden dabei
  605. ignoriert; Groß- und Kleinschreibung ebenfalls. Ohne Spezialbedeutung
  606. muß der Name lediglich mit name beginnen. Wird name gefunden, wird
  607. ERRORLEVEL auf 0 gesetzt, ansonsten auf einen Wert größer als Null.
  608.  
  609.  
  610. Kommando 9) -
  611.  
  612. Löst alle SUBST- und JOIN-Definitionen, die z.Z. existieren.
  613.  
  614.  
  615. Kommando 10) --
  616.  
  617. Führt auf alle Laufwerke, deren NETWORK-Flag nicht gesetzt ist,
  618. 'SWSUBST ? -' aus.
  619. Achtung: Dieses Kommando wechselt auf allen betroffenen Laufwerken ins
  620. Wurzelverzeichnis.
  621.  
  622.  
  623. Kommando 11) /j lw /d
  624.     oder     /j lw -
  625.     oder     /j /d lw
  626.     oder     /u /d lw 
  627.     oder     /u lw /d
  628.     oder     /u lw -
  629.     oder     /d lw
  630.     oder     lw /d
  631.     oder     lw -
  632.  
  633. Löst die SUBST- oder/und JOIN-Definition von Laufwerk lw. Initialisiert
  634. den DPB und legt das Wurzelverzeichnis als aktuelles Verzeichnis des
  635. jeweiligen Laufwerks fest.
  636.  
  637.  
  638. Kommando 12) lw pfad
  639.  
  640. Falls der Name der Programmdatei von SWSUBST nach JOIN unbenannt wurde,
  641. wird Kommando 6) ausgeführt. In allen anderen Fällen Kommando 5).
  642.  
  643. Kommando 13) /k [-]pfad
  644. "mkdir"
  645.  
  646. Der Pfad pfad wird angelegt. Fehlende Überverzeichnisse werden ebenfalls
  647. angelegt. Ist der optionale Bindestrich '-' angegeben, werden evtl.
  648. bestehende SUBST- bzw. JOIN-Verbindungen kurzzeitig gelöst.
  649.  
  650.  
  651. Kommando 14) /q lw:{<op><flag>}
  652. "query"
  653.  
  654. Dieses Kommando ist das Gegenstück zu Kommando 2) und fragt die
  655. Laufwerkflags ab. Dabei wird ERRORLEVEL auf Null gesetzt, wenn die
  656. Laufwerksflags der Bedingung genügen, ansonsten auf einen Wert größer
  657. als Null.
  658.  
  659. Als Operationen <op> sind '+' für gesetzt und '-' für nicht gesetzt
  660. zugelassen. Korrekte Flags <flags> sind: PHYSICAL, SUBST, NETWORK, JOIN,
  661. HIDDEN und eine ein- bzw. zweistellige Dezimalzahl.
  662.  
  663.  
  664.  
  665.  
  666. Unterschiede zu DOS' SUBST/JOIN:
  667.  
  668. DOS's SUBST/JOIN Aufrufe:
  669. 1) SUBST lw: pfad
  670. 2) SUBST lw: /d
  671. 3) SUBST
  672.  
  673. Unterschiede:
  674. 1) pfad kann nicht mit einem Bindestrich '-' beginnen;
  675.    falls lw bereits mittels SUBST bzw. JOIN verbunden ist, wird diese
  676.    Verbindung ohne Warnung gelöst;
  677. 2) falls lw keine SUBST Verbindung hat, wird kein Fehler erzeugt;
  678.    eine JOIN Verbindung wird ohne Warnung gelöst;
  679. 3) zeigt nicht nur die mit SUBST verbunden Laufwerke, sondern die
  680.    gesamte CDS Tabelle an.
  681.  
  682. Für JOIN gilt das analog.
  683.  
  684.  
  685.  
  686. Umgebungsvariablen:
  687.  
  688. Bevor die Optionen ausgewertet werden, wird die Zeichenkette
  689. "%SKAUS% %SKAUS17% %SKAUS17A% %SKAUS17A2% "
  690. ausgewertet. 'SKAUS...' sind Umgebungsvariablen, über die das DOS-
  691. Handbuch mehr weiß.
  692.  
  693. Diese Zeichenkette darf alle Optionen enthalten, zusätzlich einige nur
  694. hier gültigen Optionen ohne vorangestelltes Optionszeichen '/' (Groß-
  695. und Kleinschreibung unwichtig), vor und nach dem Gleichheitszeichen '='
  696. dürfen keine Leerzeichen stehen. Solange der Diagnosemodus ausgeschaltet
  697. ist, werden unbekannte Optionen hier ignoriert.
  698.  
  699. Verfügbare Optionen:
  700. 'banner'    Programmkurzbeschreibung anzeigen (Überschrift)
  701. 'nobanner'    Programmkurzbeschreibung NICHT anzeigen
  702. 'silent'    alle Ausgaben außer ERRORLEVEL ausschalten, auch Umleitungen
  703.             werden aufgehoben
  704. 'nosilent'    Ausgaben nicht ändern
  705. 'errout=..'    Fehlerausgaben umlenken:
  706.             .. == !  => in Standardausgabestrom mischen
  707.             .. == !# => in den Ausgabestrom Nummer # mischen
  708.             .. beginnt nicht mit einem Ausrufezeichen '!' =>
  709.                         in die Datei .. schreiben
  710. 'errfile=.'    Zeichenkettendatei, u.a. Fehlerausschriften:
  711.             . leer => eingebaute deutsche Texte nutzen
  712.             . == # => die Zahl # kennzeichnet den Anfang der Texte
  713.                       in der Programmdatei
  714.             . keine Zahl => Datei, die die Texte enthält
  715.                 [[s. Neue Texte einbringen]]
  716. 'makeerrfile' Beispiel einer Fehlertextdatei in deutsch auf die
  717.               Standardausgabe schreiben
  718.                 [[s. Neue Texte einbringen]]
  719. 'dosish'    DOS - Kompatibilität einschalten. Nachfolgend werden nur die
  720.             Formate analog "Unterschied zu DOS' SUBST/JOIN".  Jedoch 
  721.             werden DOS' SUBST/JOIN Format 3) kompatible Tabellen erzeugt.
  722.             JOIN und SUBST wird analog zu Kommando 12) unterschieden.
  723. 'nodosish'    DOS - Kompatibilität abschalten
  724. 'diag'        Diagnosemodus einschalten
  725. 'nodiag'    Diagnosemodus ausschalten
  726.  
  727.  
  728.  
  729. Neue Texte einbringen:
  730.  
  731. Alle Ausgaben, die das Programm erzeugt, können verändert werden, z.B.
  732. um sie einer anderen Sprache anzupassen. Die Standardsprache ist
  733. deutsch.
  734.  
  735. Hierzu ist folgenden Schritten zu folgen:
  736. 1) Eine der vier Umgebungsvariablen auf "makeerrfile" setzen.
  737. 2) Programm aufrufen und die Ausgabe in eine Datei umleiten, z.B.
  738.    "SWSUBST >swsubst.q".
  739. 3) Die Umgebungsvariable auf ihren alten Wert setzen oder löschen.
  740. 4) Die Datei "swsubst.q" ändern. Dabei sind die Zeilen ">>#" nicht
  741.    zuändern, außer wenn der jeweilige Text NICHT geändert werden soll,
  742.    dann MUß die Zeile gelöscht werden.
  743.    Jeder Eintrag kann nicht länger werden als der Hilfetext (Text nach
  744.    ">>0"), da jener Bereich intern als Puffer fungiert. Deshalb MUß der
  745.    Hilfetext immer umdefiniert werden, oder nicht aus der Datei
  746.    gestrichen.
  747.    Der Text enthält Zeichenfolgen der Form "%??", welche Einfügungen
  748.    kennzeichnet. Diese Einfügungen können in der Reihenfolgen NICHT
  749.    geändert werden, jedoch dürfen sie vom Ende her lückenlos entfallen.
  750. 5) Verfügbarmachen des neuen Textes über eine Umgebungsvariable (die
  751.    Variable SKAUS eignet sich nicht) und die Option "errfile=". 
  752.    Variante 1) Option "errfile=...\swsubst.q" mit ... dem absoluten
  753.    Pfad zur Datei.
  754.    Variante 2) Ermitteln der Länge der Programmdatei von SWSUBST.
  755.    Anhängen der Fehlertextdatei an die Programmdatei, z.B. mittels 
  756.    "copy /b swsubst.exe + swsubst.q swsubst1.exe". Setzen der Option
  757.    "errfile=#", mit # der oben ermittelten Länge. Diese Zahl ist in C
  758.    Notation, d.h. beginnt die Ziffer mit '0' ist sie oktal, mit '0x'
  759.    oder '0X' hexadezimal, beginnt sie mit einer Ziffer zwischen 1 und 9
  760.    ist sie dezimal. Um weitere Anfügungen zu ermöglichen, sollte noch
  761.    das Textendekennzeichen ^Z (ASCII 1A hex bzw. 26 dez) angehängt
  762.    werden, sofern es nicht schon geschehen ist.
  763.  
  764. Um z.B. statt deutschen Texten englische zu erhalten, können die
  765. vordefinierten [siehe Datei SWSUBST.LNG] verwendet werden, bzw. statt
  766. der vordefinierten englischen die deutschen, indem "errfile=" ohne
  767. Argument verwendet wird.
  768.  
  769. Die SWSUBST - Programmdatei darf mit angehangenen Textdatei weitergegeben
  770. werden, sofern das in der Datei SWSUBST.LNG vermerkt wird.
  771.  
  772.  
  773.  
  774. Autor:
  775.  
  776. Steffen Kaiser
  777. Ernst-Thälmann-Straße 2
  778. D-39606 Iden
  779. Deutschland - Germany
  780.