48046
Goto Top

Bestimmte Zeichen aus Variable lesen

Hallo !


Weiß jemand wie ich aus folgender Variable eine gewisse Anzahl Zeichen auslesen kann?

%0


Hintergrund ist, ich suche eine Möglichkeit das aktuelle Laufwerk auf dem die Batch läuft, zu ermitteln. Normalerweise könnte ich es mit folgenden Befehlen machen, aber diese laufen nur unter XP:

1.) Möglichkeit %~d0

2.) for /f "delims=:" %%i in ('cd') do set LW=%%i

3.) Möglichlkeit for %%i in (C D E F G) do if exist %%i:\DeinBatch.bat set LW=%%i
Wobei Windows bei dieser eine Fehlermeldung für abgefragte Laufwerke mit nicht vorhandenem Datenträger, ausgibt!


Das einzigste was bis jetzt bei WIN98 akzeptiert wurde, ist folgendes:

%0
(Ergibt Laufwerk + Dateiname; also z.B. C:\Test.bat)


1.) Jetzt müßte ich wissen, wie man nur die ersten 3 Buchstaben von %0 ausliest, dann hätte ich ja mein Laufwerk.
2.) Oder aber jemand weiß noch eine andere Möglichkeit den aktuellen Laufwerksbuchstaben unter WIN98 zu ermitteln.


P.S. Ganz nebenbei, auf EXIT reagiert WIN98 auch nicht mit dem Schliessen des DOS-Fensters!?

Gruß ELMI

Content-Key: 62114

Url: https://administrator.de/contentid/62114

Printed on: May 4, 2024 at 20:05 o'clock

Member: bastla
bastla Jun 22, 2007 at 20:22:40 (UTC)
Goto Top
Hallo Elmi55!

Da es Dir ein derartiges Anliegen zu sein scheint, habe ich mich etwas intensiver umgesehen, ua hier.

Voraussetzung für den folgenden Ansatz ist, dass Choice.exe verfügbar ist (also etwa in W98). Daraus folgt, dass Du vorweg das OS bestimmen (oder, noch besser, das Vorhandensein von Choice.exe überprüfen) musst, um die richtige Variante auszuführen, also etwa:

@ECHO OFF
IF "%1"=="Loop" GOTO Loop  
IF /I "%OS%"=="Windows_NT" GOTO NT  
ECHO \| CHOICE /C:;%0;] %0 Loop > "%TEMP%\TEMP.BAT"  
CALL "%TEMP%\TEMP.BAT"  
REM Ab hier der eigentliche Batch
:Batch
ECHO LW ist: %DR%
PAUSE
GOTO End

:Loop
SHIFT
IF "%1"=="\" GOTO End  
IF NOT "%1"=="[" SET DR=%DR%%1  
GOTO Loop
:NT
SET DR=%~d0%
goto Batch
:End

Grüße
bastla

P.S.: Du könntest mir einen Gefallen tun und die Schreibweise von Variable in Deinem Beitrag richtig stellen ...
Mitglied: 48046
48046 Jun 23, 2007 at 06:02:06 (UTC)
Goto Top
Hi bastla !


Du bist genial, ich verstehe zwar nicht so ganz den Inhalt Deiner Befehle, aber es funktioniert, und das ist das wichtigste, hurra face-smile Wußte doch, dass es möglich ist, und Du hast es mal wieder hingekriegt!

P.S. Hab das Wort Variable richtig gestellt face-wink


Danke nochmals, besonders für Deine Mühe & Zeit die Du dafür investiert hast!


Gruß ELMI