
48046
22.06.2007, aktualisiert am 23.06.2007
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 62114
Url: https://administrator.de/forum/bestimmte-zeichen-aus-variable-lesen-62114.html
Ausgedruckt am: 27.04.2025 um 16:04 Uhr
2 Kommentare
Neuester Kommentar
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:
Grüße
bastla
P.S.: Du könntest mir einen Gefallen tun und die Schreibweise von Variable in Deinem Beitrag richtig stellen ...
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 ...