home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 17 Fixes30 / 17-Fixes30.zip / warpico3.zip / DISK1 / DMF_PS2.CMD < prev    next >
OS/2 REXX Batch file  |  1995-01-30  |  10KB  |  298 lines

  1. /*     */
  2.     /*
  3.     * ********************************************************************
  4.     * *             Copyright (c) IBM Corporation, 1995                  *
  5.     * *                     All Rights Reserved                          *
  6.     * ********************************************************************
  7.     *
  8.     *
  9.     * BESCHREIBUNG: Diese REXX-Befehlsdatei dient zur Änderung der Datei
  10.     *               CONFIG.SYS für IBM MICRO CHANNEL PS/2-Systeme, um
  11.     *               Microsoft Anwendungen zu installieren, die auf
  12.     *               Ihrem IBM PS/2 MICRO CHANNEL-System im DMF-Format
  13.     *               vorhanden sind.
  14.     *
  15.     */
  16.  
  17.    /*      trace I */
  18.     call init
  19.  
  20.     /* Version des aktuellen OS/2-Systems ermitteln. */
  21.     version = SysOs2Ver()
  22.     if version < '2.30' then  /* 2.30 entspricht Version Warp. */
  23.       do
  24.         say 'Diese Befehlsdatei funktioniert nicht mit '
  25.         say 'dieser Version von OS/2. Programm beendet!'
  26.         exit
  27.       end
  28.     "@cls"
  29.     Say ' '
  30.     Say 'Mit diesem Programm können Benutzer von OS/2 Warp auf'
  31.     Say 'Systemen IBM PS/2 Software installieren, die auf Disketten'
  32.     Say 'im nicht standardmäßigen DMF-Format geliefert wird.'
  33.     Say ' '
  34.     Say 'Dieses Programm ändert die Datei CONFIG.SYS so, daß DMF-'
  35.     Say 'Disketten gelesen werden können. Nach Installation der DMF-'
  36.     Say 'Software sollten Sie dieses Programm erneut ausführen und '
  37.     Say 'mit der Option R die Originaldatei CONFIG.SYS wiederherstellen.'
  38.     Say ' '
  39.     Say 'Um die Datei CONFIG.SYS von OS/2 Warp zur Unterstützung der'
  40.     Say 'Installation von Disketten im DMF-Format zu modifizieren, '
  41.     Say 'geben Sie M ein. '
  42.     Say ' '
  43.     Say 'Um die Änderungen für das Lesen von DMF-Disketten wieder'
  44.     Say 'rückgängig zu machen, geben Sie R ein.'
  45.     Say ' '
  46.     Say 'Um dieses Programm ohne Änderungen zu beenden, '
  47.     Say 'geben Sie E für Ende ein.'
  48.     Say ' '
  49.     Say 'Geben Sie M (Modifizieren), R (Rückgängig) oder E (Ende) ein.'
  50.  
  51.     parse upper pull answer .   /* Antwort einholen */
  52.  
  53.     if (answer='E' | answer='EXIT' | answer='ENDE') then /* Bei E beenden */
  54.       say 'Befehlsdatei beendet!'
  55.  
  56.     else if (answer='RESTORE' | answer='R') then
  57.       call UNDO                           /* Bei R Routine UNDO aufrufen */
  58.  
  59.     else if (answer='M' | answer = 'MODIFY') then
  60.      do                           /* Bei Modifizieren CONFIG.SYS ändern */
  61.       '@cls'
  62.       say ' '
  63.       say ' '
  64.       say ' '
  65.       say 'Auf welchem Laufwerk ist Ihr OS/2 Warp System installiert?'
  66.       say 'Geben Sie den Laufwerksbuchstaben oder Pfad (z. B. C:\) ein.'
  67.       say ''
  68.  
  69.         /* Prüfen, ob angegebenes Laufwerk gültig ist. */
  70.         call Checkdrive        /* Routine Checkdrive aufrufen */
  71.  
  72.         fname=drive'\config.sys' /* Buchstaben und Pfad für CONFIG.SYS zuordnen */
  73.  
  74.         /* Prüfen, ob CONFIG.SYS vorhanden ist. */
  75.         call sysfiletree fname, 'files.', 'F'
  76.  
  77.         if files.0 < 1 then
  78.           do
  79.             say 'Datei CONFIG.SYS nicht gefunden.'
  80.             say 'Programm beendet.'
  81.             exit
  82.           end
  83.  
  84.         sname=drive'\config.dmf'  /* Buchstabe und Pfad der Sicherungsdatei */
  85.                                   /* für CONFIG.SYS zuordnen */
  86.  
  87.         /* Prüfen, ob CONFIG.DMF bereits existiert. */
  88.         call sysfiletree sname, 'files.', 'F'
  89.  
  90.         if files.0 >= 1 then
  91.           do
  92.             say 'Datei CONFIG.DMF existiert bereits. Überschreiben (J/N)?'
  93.  
  94.             parse upper pull answer
  95.             answer = left(answer,1)
  96.             if answer = 'N' then
  97.               do
  98.                 say 'Löschen Sie CONFIG.DMF oder benennen Sie die Datei um,'
  99.                 say 'bevor Sie DMF_PS2 ausführen.'
  100.                 exit
  101.               end
  102.           end
  103.  
  104.         nname=drive'\config1.tmp'  /* Buchstabe und Pfad für temporäre */
  105.                                    /* Datei zuordnen */
  106.  
  107.         say 'Änderung wird ausgeführt ........'
  108.         say ' '
  109.         "@copy" fname sname ">nul 2>nul" /* CONFIG.SYS sichern */
  110.  
  111.         call lineout nname,,1
  112.         do while lines(fname)   /* Analyse der CONFIG.SYS und Suchen der */
  113.            str = linein(fname)  /* zu ändernden Zeichenfolge */
  114.            basedev = (substr(str,1,20))  /* Nur die ersten 20 Zeichen der */
  115.                                          /* Zeile sind relevant */
  116.            select
  117.               when substr(basedev,1,20) == 'BASEDEV=IBM1FLPY.ADD' then do
  118.                   if left(reverse(str), 4) \= 'ACM/' then do
  119.                     call lineout nname, str '/MCA' /* Option /MCA zum Treiber */
  120.                     end                            /* IBM1FLPY.ADD hinzufügen */
  121.                   else
  122.                     call lineout nname, str
  123.                     end
  124.               when substr(basedev,1,20) == 'BASEDEV=IBM2FLPY.ADD' then do
  125.                     call lineout nname, 'REM' str           /* REM: Treiber */
  126.                     end                       /* IBM2FLPY.ADD auf Kommentar */
  127.               otherwise do
  128.                     call lineout nname, str
  129.                     end
  130.            end
  131.          end
  132.  
  133.          call lineout fname
  134.          call lineout nname
  135.          "@copy" nname fname ">nul 2>nul"
  136.          "@erase" nname
  137.          "@cls"
  138.  
  139.  
  140.          say ''
  141.          say ''
  142.          say ''
  143.          say ''
  144.          say 'Geändert wurde die Datei' fname
  145.          say ''
  146.          say 'Ihre Datei CONFIG.SYS wurde geändert. Die Originalversion '
  147.          say 'wurde unter CONFIG.DMF gesichert. Führen Sie einen System-'
  148.          say 'abschluß durch und starten Sie das System neu, damit die '
  149.          say 'Änderungen wirksam werden.'
  150.          say 'Nach der Installation der DMF-Anwendungen führen Sie DMF_PS2'
  151.          say 'erneut mit der Option R (Rückgängig) aus, um das System auf'
  152.          say 'den ursprünglichen Stand zurückzusetzen.'
  153.  
  154.       end
  155.     else
  156.         say 'Eingabe ungültig.'
  157.         say 'Programm beendet.'
  158.  
  159. exit
  160.  
  161. UNDO:
  162.     '@cls'
  163.     say ' '
  164.     say ' '
  165.     say ' '
  166.     say 'Auf welchem Laufwerk ist Ihr OS/2 Warp System installiert?'
  167.     say 'Geben Sie den Laufwerksbuchstaben oder Pfad (z. B. C:\) ein.'
  168.     say ' '
  169.  
  170.     call Checkdrive
  171.  
  172.     fname=drive'\config.sys'
  173.  
  174.     call sysfiletree fname, 'files.', 'F'
  175.     if files.0 < 1 then
  176.       do
  177.         say 'Datei CONFIG.SYS nicht gefunden.'
  178.         say 'Programm beendet.'
  179.         exit
  180.       end
  181.  
  182.     nname=drive'\config1.tmp'
  183.  
  184.     do while lines(fname)        /* Hier wird geprüft, ob die DMF-Änderungen */
  185.       str = linein(fname)        /* in der CONFIG.SYS zurückgeändert werden  */
  186.       basedev = (substr(str,1,24))   /* müssen. */
  187.       select
  188.         when substr(basedev,1,20) == 'BASEDEV=IBM2FLPY.ADD' then do
  189.              "@CLS"
  190.              say ' '                  /* Wird dies gefunden, */
  191.              say ' '                  /* Nachricht anzeigen. */
  192.              say ' '
  193.              say 'Die Datei CONFIG.SYS enthält keine DMF-Änderungen.'
  194.              say 'Es ist nichts rückgängig zu machen.'
  195.              say 'Programm beendet!'
  196.              call exit
  197.              end
  198.         when substr(basedev,1,24) == 'REM BASEDEV=IBM2FLPY.ADD' then do
  199.              call lineout nname
  200.              call lineout fname         /* Wird dies gefunden, undo2  */
  201.              call undo2                 /* aufrufen, um die DMF-Änderungen */
  202.              end                        /* zurückzunehmen. */
  203.         otherwise do
  204.               call lineout nname, str
  205.               end
  206.     end
  207.   end
  208. EXIT:
  209.     call lineout nname
  210.     "@ERASE" nname
  211.     exit
  212.  
  213. UNDO2:
  214.  
  215.    "@erase" nname
  216.  
  217.     nname=drive'\config1.tmp'
  218.  
  219.     call lineout nname,,1
  220.     do while lines(fname)
  221.       str = linein(fname)
  222.       basedev = (substr(str,1,24))
  223.  
  224.       select
  225.         when substr(basedev,1,24) == 'REM BASEDEV=IBM2FLPY.ADD' then do
  226.               newstr = (subword(str,2))
  227.               call lineout nname, newstr
  228.               end
  229.         when substr(basedev,1,20) == 'BASEDEV=IBM1FLPY.ADD' then do
  230.               parse var str final remaining
  231.               num_item = words(remaining)
  232.               do p = 1 to num_item
  233.                 if strip(word(remaining, p)) \= '/MCA' then
  234.                   final = final || ' 'word(remaining, p)
  235.               end
  236.               call lineout nname, final
  237.               end
  238.         otherwise do
  239.               call lineout nname, str
  240.               end
  241.       end
  242.     end
  243.     call lineout fname
  244.     call lineout nname
  245.     "@copy" nname fname ">nul 2>nul"
  246.     "@erase" nname
  247.     "@cls"
  248.  
  249.  
  250.     say ''
  251.     say ''
  252.     say ''
  253.     say ''
  254.     say 'Ihre Datei CONFIG.SYS wurde wiederhergestellt. Damit die Änderung'
  255.     say 'wirksam wird, führen Sie einen Systemabschluß durch und starten Sie'
  256.     say 'das System neu.'
  257. exit
  258.  
  259. CheckDrive:
  260.     /* Lokale Laufwerksbuchstaben ermitteln. */
  261.     drivemap = sysdrivemap('c:', 'LOCAL')
  262.  
  263.     parse upper pull drive .
  264.  
  265.     drive = strip(translate(drive, ' ', '\'))
  266.     num_item = words(drive)
  267.     if num_item > 1 then
  268.       do
  269.         say 'Drive not recognized.'
  270.         say 'Program ended.'
  271.         exit
  272.       end
  273.     found = 'NO'
  274.     do while drivemap \= ''
  275.       parse var drivemap head tail
  276.       drivemap = tail
  277.       head = strip(head)
  278.       if head = drive then
  279.          found = 'YES'
  280.     end
  281.  
  282.     if found = 'NO' then
  283.       do
  284.         say 'Laufwerk nicht erkannt.'
  285.         say 'Programm beendet.'
  286.       end
  287. return
  288.  
  289. /* Laden der Bibkliothek mit den Systemfunktionen. WPW001 */
  290. Init: Procedure
  291.  
  292.     /* Laden der Bibliothek */
  293.     if RxFuncQuery('SysLoadFuncs') then do
  294.         Call RXFuncAdd 'SysLoadFuncs','RexxUtil','SysloadFuncs'
  295.     end
  296.     Call SysLoadFuncs
  297. return
  298.