48046
Goto Top

Suche anderen Befehl zur Erkennung des Laufwerksbuchstaben

Hi !

Wie der Titel des Threads schon aussagt, suche ich einen anderen Befehl als den, den ich zur Zeit kenne, bzw. nutze:


%~d0


Dieser funktioniert unter XP problemlos, aber leider kann WIN98 nichts mit dem Befehl anfangen. Weiß jemand von euch noch eine andere Möglichkeit, die auch WIN98 akzeptiert.

Es geht mir wie gesagt nur um den Laufwerksbuchstaben, keine Pfadangaben.


Gruß ELMI

Content-Key: 62033

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

Printed on: April 16, 2024 at 11:04 o'clock

Member: bastla
bastla Jun 21, 2007 at 19:25:35 (UTC)
Goto Top
Hallo Elmi55!

Vermutlich wird Biber einen eleganteren Weg kennen, aber so sollte es zumindest auch gehen:
for %%i in (C D E F G) do if exist %%i:\DeinBatch.bat set LW=%%i
Die Liste der möglichen Laufwerksbuchstaben kannst Du ja bei Bedarf entsprechend verlängern ...

Grüße
bastla
Mitglied: 36539
36539 Jun 21, 2007 at 21:20:59 (UTC)
Goto Top
Hallo,

stammt von Biber face-wink
:: --- getDrivesIWant2C.bat
@echo off & setlocal
set vbsSnippet=%temp%\%random%.vbs
rem echo %vbssnippet%
>%vbsSnippet% echo Set FSO = CreateObject("Scripting.FileSystemObject")   
>>%vbsSnippet% echo Set Drives = FSO.Drives
>>%vbsSnippet% echo set Args = wscript.arguments
>>%vbsSnippet% echo alldrives=""  
>>%vbsSnippet% echo wanteddrvs="2"  
>>%vbsSnippet% echo for i=0 to Args.count-1
>>%vbsSnippet% echo wanteddrvs= wanteddrvs + "," + args(i)  
>>%vbsSnippet% echo next
>>%vbsSnippet% echo For Each d in Drives
>>%vbsSnippet% echo if instr(1,wanteddrvs,d.Drivetype) then alldrives= alldrives +"," + d.Driveletter  
>>%vbsSnippet% echo Next>>%vbsSnippet%
>>%vbsSnippet% echo wscript.echo mid(alldrives,2)
>>%vbsSnippet% echo Set Drives = nothing
>>%vbsSnippet% echo Set FileSystemObject = nothing
>>%vbsSnippet% echo wscript.quit

rem Ein bisschen Demo:
rem For /f %%i in ('cscript //nologo %vbsSnippet%') do echo [DEBUG Lw-Liste nur Fixed ] %%i  
rem For /f %%i in ('cscript //nologo %vbsSnippet% 1 4 ') do echo [DEBUG Lw-Liste Fixed + Removable+ CDRom] %%i  
rem Ende von: Ein bisschen Demo:
For /f %%i in ('cscript //nologo %vbsSnippet%') do set "lwliste=%%i"  
echo [Lw-Liste Fixed] %lwliste%
rem echo [Der For-Befehl nur Fixed-Lw:.. for %%%%a in (%%lwliste%%) ..-^>.. for %%%%a in (%lwliste%)
del %vbsSnippet%
pause

gruß

PS:
Verflucht nochmal, wieso übernimmt [] nicht die korrekte Formatierung und setzt die dämlichen Zeilenumbrüche?
Mitglied: 48046
48046 Jun 22, 2007 at 05:01:15 (UTC)
Goto Top
Jo danke Leute, klappt prima face-smile


P.S. Noch nebenbei, EXIT hat auch keine Wirkung unter WIN98, also DOS-Fenster schließt nicht nach dem Beenden. Ist zwar das kleinste Übel, aber vielleicht gibts ja doch noch was?


Gruß ELMI
Member: bastla
bastla Jun 22, 2007 at 05:05:12 (UTC)
Goto Top
Hallo Elmi55!

Die VBS-Variante hast Du unter W98 verwenden können?

Grüße
bastla
Mitglied: 48046
48046 Jun 22, 2007 at 05:48:07 (UTC)
Goto Top
Hi Bastla !


Nein nich das VBS-Script, sondern Deine for-Abfrage.
Einzigstes Manko dabei ist, dass wenn ich die Liste der LW-Buchstaben verlängere bzw. komplettiere, dann bringt Windows Fehlermeldungen bei Laufwerken die zur Zeit keinen Datenträger haben.

Beispiel wenn ein Chipkartenleser existiert, dieser hat 3 LW-Buchstaben, aber es steckt halt keine Speicherkarte drin, dann kommt folgende Meldung:

Windows - Kein Datenträger

X Exception Processing Message c0000013 Paramters 75b0bf9c 4 75b0bf9c 75b0bf9c

ABbrechen Wiederholen Weiter

Bei Laufwerken bis zu Z abwärts die auch garnicht eingebaut sind, gibts keine Fehlermeldung.


P.S. Habe es eben auch noch als Alternative zu %~d0 mit %cd:~0,3% versucht, welches unter XP wiederum problemlos klappt, aber WIN98 kennt auch diese Befehlskombination nicht face-sad


Gruß ELMI
Mitglied: 48046
48046 Jun 22, 2007 at 08:47:03 (UTC)
Goto Top
auch gerade probiert:

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


Bei XP einwandfrei, WIN98 meldet einen Syntaxfehler..........
Das dürfte doch eigentlich nicht nicht so schwer sein, nur den Laufwerksbuchstaben unter WIN98 zu ermitteln. Man kann so viel mit Batchbefehlen machen, und dann hängts im Prinzip an so einer Kleinigkeit.....


Gruß ELMI
Mitglied: 48046
48046 Jun 22, 2007 at 11:42:22 (UTC)
Goto Top
Hab grad rausbekommen, das WIN98 diesen Befehl akzeptiert:

%0

Das ergibt Laufwerk + Dateiname

Das wäre zumindest mal ein Ansatz, jetzt müßte ich wissen, wie man nur die ersten 3 Buchstaben von %0 ausliest, dann hätte ich ja mein Laufwerk face-wink

Wer weiß da Rat ?


Gruß ELMI