home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / change2.zip / w.cmd < prev    next >
OS/2 REXX Batch file  |  1996-08-30  |  9KB  |  331 lines

  1. /* w.cmd, ein Programm zum eleganten Verzeichnis-Wechsel */
  2. "@ echo off"
  3.  
  4.   Y="C"             /* Hier den Laufwerksbuchstaben eintragen, auf dem   */
  5.                     /* einige Pufferdateien sowohl während des Laufes    */
  6.                     /* der w.cmd gespeichert als auch am Ende von w.cmd  */
  7.                     /* wieder gelöscht werde.                            */
  8.   X=Y||":"||"\"
  9.  
  10.   /* Übernahme des Kommandozeilen-Parameters */
  11.   parse arg ziel
  12.   ziel=strip(ziel)
  13.  
  14.   /* Nichts eingegeben */
  15.   if length(ziel) = 0
  16.   then do
  17.          "cd\"
  18.          signal E
  19.        end
  20.  
  21. /************** Laufwerks-Wechsel (Anfang) *********************/
  22.  
  23.   if length(ziel)=2
  24.   then do
  25.     ziel1 = substr(ziel,2,2)
  26.     if (COMPARE(ziel1,':')=0)
  27.     then do
  28.           ziel "2>" X"FehlLW2.DAT"
  29.       StrLW2=Charin(X"FehlLW2.DAT",1,7)
  30.        call charout(X"FehlLW2.DAT")
  31.  
  32.       if (COMPARE(StrLW2,"SYS0015") = 0)
  33.       then do
  34.         Call LWAnz substr(ziel, 1, 1)
  35.         signal E
  36.       end  /* Ende von "if (COMPARE(StrLW2,"SYS0015") = 0)" */
  37.       "cd\"
  38.       signal E
  39.     end         /* Ende von "if (COMPARE(ziel1,':')=0)" */
  40.   end           /* Ende von "if length(ziel)=2" */
  41.  
  42. /************** Laufwerks-Wechsel (Ende) *********************/
  43.  
  44.  
  45. /************** Vervollständigung des Pfades (Anfang) ******************/
  46.  
  47.   if ((Compare(substr(ziel,2,1),':')=0) & (Compare(substr(ziel,3,1),'\')=0))
  48.   then do
  49.          neuZiel=ziel
  50.          SIGNAL AQ
  51.        end
  52.  
  53.   if ((Compare(substr(directory(),2,1),':')=0) &,
  54.       (Compare(substr(directory(),3,1),'\')=0),
  55.        & (length(directory())>3))
  56.   then do
  57.          neuZiel=directory()||'\'||ziel
  58.          SIGNAL AQ
  59.        end
  60.  
  61.   neuZiel=directory()||ziel
  62.  
  63. AQ:
  64.   ziel=neuZiel
  65.  
  66. /************** Vervollständigung des Pfades (Ende) ******************/
  67.  
  68.  
  69.   parse var ziel w.1  '\' w.2  '\' w.3  '\',
  70.                  w.4  '\' w.5  '\' w.6  '\',
  71.                  w.7  '\' w.8  '\' w.9  '\',
  72.                  w.10 '\' w.11 '\' w.12
  73.  
  74.  
  75.   if (length(w.1) > 0)
  76.   then do
  77.          w.1 "2>" X"FehlVz1.DAT"
  78.          "cd\"
  79.          StrVz1=Charin(X"FehlVz1.DAT",1,7);
  80.           call charout(X"FehlVz1.DAT")
  81.          if (COMPARE(StrVz1,"SYS0015") = 0)
  82.          then do
  83.                 Call LWAnz substr(w.1, 1, 1)
  84.                 signal E
  85.               end
  86.        end
  87.  
  88.  
  89.   if (length(w.2) > 0)
  90.   then do
  91.          "cd" w.2 "2>" X"FehlVz2.DAT"
  92.          StrVz2=Charin(X"FehlVz2.DAT",1,7);
  93.           call charout(X"FehlVz2.DAT")
  94.          if (COMPARE(StrVz2,"SYS0003") = 0)
  95.          then do
  96.                 LwLw=substr(w.1, 1, 1)
  97.                 Call LWStamm LwLw w.2
  98.                 signal E
  99.               end
  100.        end
  101.  
  102.   if (length(w.3) > 0)
  103.   then do
  104.          "cd" w.3 "2>" X"FehlVz3.DAT"
  105.          StrVz3=Charin(X"FehlVz3.DAT",1,7);
  106.           call charout(X"FehlVz3.DAT")
  107.          if (COMPARE(StrVz3,"SYS0003") = 0)
  108.          then do
  109.                 Call VzUVz directory() w.3
  110.                 signal E
  111.               end
  112.        end
  113.  
  114.   if (length(w.4) > 0)
  115.   then do
  116.          "cd" w.4 "2>" X"FehlVz4.DAT"
  117.          StrVz4=Charin(X"FehlVz4.DAT",1,7);
  118.           call charout(X"FehlVz4.DAT")
  119.  
  120.          if (COMPARE(StrVz4,"SYS0003") = 0)
  121.          then do
  122.                 Call VzUVz directory() w.4
  123.                 signal E
  124.               end
  125.        end
  126.  
  127.   if (length(w.5) > 0)
  128.   then do
  129.          "cd" w.5 "2>" X"FehlVz5.DAT"
  130.          StrVz5=Charin(X"FehlVz5.DAT",1,7);
  131.           call charout(X"FehlVz5.DAT")
  132.  
  133.          if (COMPARE(StrVz5,"SYS0003") = 0)
  134.          then do
  135.                 Call VzUVz directory() w.5
  136.                 signal E
  137.               end
  138.        end
  139.  
  140.   if (length(w.6) > 0)
  141.   then do
  142.          "cd" w.6 "2>" X"FehlVz6.DAT"
  143.          StrVz6=Charin(X"FehlVz6.DAT",1,7);
  144.           call charout(X"FehlVz6.DAT")
  145.  
  146.          if (COMPARE(StrVz6,"SYS0003") = 0)
  147.          then do
  148.                 Call VzUVz directory() w.6
  149.                 signal E
  150.               end
  151.        end
  152.  
  153.   if (length(w.7) > 0)
  154.   then do
  155.          "cd" w.7 "2>" X"FehlVz7.DAT"
  156.          StrVz7=Charin(X"FehlVz7.DAT",1,7);
  157.           call charout(X"FehlVz7.DAT")
  158.  
  159.          if (COMPARE(StrVz7,"SYS0003") = 0)
  160.          then do
  161.                 Call VzUVz directory() w.7
  162.                 signal E
  163.               end
  164.        end
  165.  
  166.   if (length(w.8) > 0)
  167.   then do
  168.          "cd" w.8 "2>" X"FehlVz8.DAT"
  169.          StrVz8=Charin(X"FehlVz8.DAT",1,7);
  170.           call charout(X"FehlVz8.DAT")
  171.  
  172.          if (COMPARE(StrVz8,"SYS0003") = 0)
  173.          then do
  174.                 Call VzUVz directory() w.8
  175.                 signal E
  176.               end
  177.        end
  178.  
  179.   if (length(w.9) > 0)
  180.   then do
  181.          "cd" w.9 "2>" X"FehlVz9.DAT"
  182.          StrVz9=Charin(X"FehlVz9.DAT",1,7);
  183.           call charout(X"FehlVz9.DAT")
  184.  
  185.          if (COMPARE(StrVz9,"SYS0003") = 0)
  186.          then do
  187.                 Call VzUVz directory() w.9
  188.                 signal E
  189.               end
  190.        end
  191.  
  192.   if (length(w.10) > 0)
  193.   then do
  194.          "cd" w.10 "2>" X"FehlVz10.DAT"
  195.          StrVz10=Charin(X"FehlVz10.DAT",1,7);
  196.            call charout(X"FehlVz10.DAT")
  197.  
  198.          if (COMPARE(StrVz10,"SYS0003") = 0)
  199.          then do
  200.                 Call VzUVz directory() w.10
  201.                 signal E
  202.               end
  203.        end
  204.  
  205.   if (length(w.11) > 0)
  206.   then do
  207.          "cd" w.11 "2>" X"FehlVz11.DAT"
  208.          StrVz11=Charin(X"FehlVz11.DAT",1,7);
  209.            call charout(X"FehlVz11.DAT")
  210.  
  211.          if (COMPARE(StrVz11,"SYS0003") = 0)
  212.          then do
  213.                 Call VzUVz directory() w.11
  214.                 signal E
  215.               end
  216.        end
  217.  
  218.   if (length(w.12) > 0)
  219.   then do
  220.          "cd" w.12 "2>" X"FehlVz12.DAT"
  221.          StrVz12=Charin(X"FehlVz12.DAT",1,7);
  222.            call charout(X"FehlVz12.DAT")
  223.  
  224.          if (COMPARE(StrVz12,"SYS0003") = 0)
  225.          then do
  226.                 Call VzUVz directory() w.12
  227.                 SIGNAL E
  228.               end
  229.        end
  230.  
  231. E:
  232. "del" X"Fehl*.DAT 1>NUL 2>NUL"
  233. EXIT
  234.  
  235. /* %%%%%%%%%%%%%%%%%%%%%%%%%% Eigene Prozeduren %%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
  236.  
  237.  
  238. LWAnz:
  239.   parse arg Param
  240.   Call CsrAttrib "High";   Call Color "yellow","black"
  241.   say
  242.   Call Charout,"   Ein Laufwerk  "
  243.                            Call Color "cyan"
  244.   Call Charout,param
  245.                            Call Color "yellow","black"
  246.   Call Charout,"  gibt es nicht auf diesem Computer"
  247.   say
  248.   Call CsrAttrib "Normal"; Call Color "white","black"
  249.   Return
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263. /*
  264. LWAnz:
  265.   parse arg Param
  266.   Call CsrAttrib "High";   Call Color "yellow","black"
  267.   say
  268.   Call Charout,"Auf diesem Rechner gibt es kein Laufwerk  "
  269.                            Call Color "white"
  270.   Call Charout,param
  271.   say
  272.   Call CsrAttrib "Normal"; Call Color "white","black"
  273.   Return
  274. */
  275.  
  276. VzUVz:
  277.   parse arg param
  278.   parse value param with param1 param2
  279.   Call CsrAttrib "High";   Call Color "yellow","black"
  280.   say
  281.   Call Charout,"   Ein Unterverzeichnis  "
  282.                            Call Color "cyan"
  283.   Call Charout,param2
  284.                            Call Color "yellow","black"
  285.   say
  286.   Call Charout,"          gibt es nicht  "
  287.   say
  288.   Call Charout,"         im Verzeichnis  "
  289.                            Call Color "cyan"
  290.   Call Charout,param1
  291.   say
  292.   Call CsrAttrib "Normal"; Call Color "white","black"
  293.   Return
  294.  
  295. LWStamm:
  296.   parse arg param
  297.   parse value param with param1 param2
  298.   Call CsrAttrib "High";   Call Color "yellow","black"
  299.   say
  300.   Call Charout,"       Ein Verzeichnis  "
  301.                            Call Color "cyan"
  302.   Call Charout,param2
  303.   say
  304.                            Call Color "yellow"
  305.   Call Charout,"         gibt es nicht  "
  306.   say
  307.   Call Charout,"   im Stammverzeichnis  "
  308.   say
  309.   Call Charout,"         des Laufwerks  "
  310.                            Call Color "cyan"
  311.   Call Charout,param1
  312.   say
  313.   Call CsrAttrib "Normal"; Call Color "white","black"
  314.   Return
  315.  
  316. /* %%%%%%%%%%%%%%%%%%%%%%%%%%% ANSI-Prozeduren %%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
  317.  
  318. Color: Procedure        /* Call Color <ForeGround>,<BackGround> */
  319. arg F,B
  320. Colors = "BLACK RED GREEN YELLOW BLUE MAGENTA CYAN WHITE"
  321. return CHAROUT(,D2C(27)"["WORDPOS(F,COLORS)+29";"WORDPOS(B,COLORS)+39";m")
  322.  
  323. CsrAttrib: Procedure                  /* call CsrAttrib <Attrib> */
  324. Arg A
  325. attr = "NORMAL HIGH LOW ITALIC UNDERLINE BLINK RAPID REVERSE"
  326. return CHAROUT(,D2C(27)"["WORDPOS(A,ATTR) - 1";m")
  327.  
  328. EndAll:
  329. Call Color "White","Black"
  330. CALL CsrAttrib "Normal"
  331.