tankwart
Goto Top

In BAT Datei bei Pfad Laufwerksname statt Laufwerksbuchstaben angeben?

Ich würde gerne per BAT Datei einen Ordner auf einer Externen Festplatte erstellen. Im Pfad soll aber der Laufwerksname statt dem Buchstaben verwendet werden.

Hallo zusammen,
Ich würde gerne per BAT Datei einen Ordner auf einer Externen Festplatte erstellen. Im Pfad soll aber der Laufwerksname statt dem Buchstaben stehen.

Problem ist halt, das der Buchstabe nicht immer gleich ist.

Also statt:
md N:\%date%

Irgendwie so:
md eindeutiger_lauwerksname:\%date%

Ist es generell möglich einen Laufwerksnamen zu übergeben??
Wie frage ich am besten ab ob das Laufwerk vorhanden ist?

Ich danke schon mal wieder im Voraus


Gruß

TankWart

Content-ID: 58777

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

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

miniversum
miniversum 11.05.2007 um 12:29:36 Uhr
Goto Top
Du könntest mit einer Forschleife alle Laufwerksbuchstaben von A bis Z duchprüfen wie deren Datenträgerbezeichnung ist.
Die Datenträgerbezeichnung erhällst du indem du in einer anderen Forschleife die erste Zeile einer Dir Anweisung auf den jeweiligen Laufwerksbuschstaben durchschaust und das 6. token mit der gewünschten Datenträgerbezeichnung vergleichst.

Nur als grober Ablauf gedacht.

miniversum
Lord-Helmi
Lord-Helmi 11.05.2007 um 12:40:31 Uhr
Goto Top
Hallo,

oder du sorgst dafür, dass dein Laufwerk immer den selben Laufwerksbuchstabe bekommt. Ein kleines Tool hierfür: http://www.uwe-sieber.de/usbdlm.html

Gruß
Michael
TankWart
TankWart 11.05.2007 um 13:30:48 Uhr
Goto Top
erst mal danke für die schnellen Antworten.

Miniversum, hast du irgendwo eine Seite parat, wo ein Beispiel mit der Forschleife darin vorkommt??
Ich bin in Batch ein absoluter Anfänger, möchte mich ja auch garnicht so tief darin einarbeiten.

Brauche das ganze halt für einen Kunden.

Das Tool wär schon nicht schlecht, aber wie ist dass, wenn ich die Platte an einem anderen PC anschließe??
Müsste ich das Prog. auf jeden Rechner ausführen, wo ich die Platte so benutzen möchte um immmer den gleichen Buchstaben zu erhalten?

Und wie ist das mit Win98?
Auf der Website steht ja das es eigentlich nur mit Win XP und höher richtig läuft.


Ich danke schon mal wieder im Voraus

Gruß

TankWart
miniversum
miniversum 11.05.2007 um 14:11:19 Uhr
Goto Top
achso das soll auch auf win98 laufen? dann wirds schwierig mit batch. ab 2000 würds da besser gehen.

Könnte dir eine Batch zusammenbasteln. Aber die läuft auf 98 danahlt nicht.

miniversum
TankWart
TankWart 11.05.2007 um 14:15:43 Uhr
Goto Top
für das erste würde auch Win XP reichen, bräuchte es evtl. halt mal wieder auch auf einem Win98 Rechner.

Hättest du da ein Beispiel für mich?
Wär echt super.

Danke schon mal wieder im Voraus.

Gruß

TankWart
miniversum
miniversum 11.05.2007 um 15:44:17 Uhr
Goto Top
Versuchs mal damit:
@echo off & setlocal enabledelayedexpansion
set "name=Laufwerksbezeichnung"  

for %%L in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
dir %%L:>NUL 2>NUL && (
set "label="  
FOR /F "tokens=6 delims= " %%N in ('dir %%L:') do if not defined label set "label=%%N"  
if !label! equ %name% (
set Lw=%%L
)
)
)

ECHO md %Lw%:\%date%
In der zweiten Zeile mußt du halt die Laufwerksbezeichnung anpassen. Das Laufwerk steht dann in der Variabeln %Lw%. Gibt es mehrere Laufwerke mit der gleichen bezeichnung wird das Laufwerk mit dem Buchstaben verwendet der im Alphabet am weitesten hinten ist.
Unten steht dein Befehl ECHO md %Lw%:\%date% dann noch mit ECHO drin das du siehst das es so gehen sollte. Das ECHO kannst du ja dan entfernen wenn es so geht wie du willst.

miniversum
Biber
Biber 11.05.2007 um 18:35:12 Uhr
Goto Top
Moin TankWart,

wie miniversum schon angedeutet hat... unter Win9X wird es umständlicher.
Unter Win2k und höher geht es mit einem Einzeiler.

Unter Nicht-Win9x: bau diese angepasste FOR-Zeile in den Batch mit ein:

::dein KopierBatch.bat
@echo off
....

for %%i in (C D E F G X Y Z) do if exist %%i: dir %%i:xx 2>nul|find /i "datenträger"|find "System XP"|find /i "%%i:">nul && Set DasLaufwerk=%i:  

REM Falls ermitelbar, ist hier %dasLaufwerk% gefunden

Erläuterung:
In diesem Beispiel werden die willkürlich angenommen Laufwerksbuchstaben C D E F G X Y Z geprüft (nicht alle existieren) und überprüft, welches davon "System XP" heißt.
Das ist bei mir auf Laufwerk C: der Fall, heraus kommt also "Set DasLaufwerk=C:"
Unter der Variable %DasLaufwerk% kannst Du also C: ansprechen

Test zum Copy & Paste am CMD-Prompt:

>for %i in (C D E F G X Y Z) do @if exist %i: dir %i:xx 2>nul|find /i "datenträger"|find "System XP"  
|find /i "%i:">nul && @echo Set DasLaufwerk=%i:  
Set DasLaufwerk=C:

Unter Win9x müsstest Du leider auf das "&&"-Zeichen verzichten und daher das Ganze in Einzelzeilen auseinanderziehen:

::dein W9xKopierBatch.bat
@echo off
....

if exist C: dir C::xx 2>nul|find /i "datenträger"|find "System XP"|find /i "C:">nul   
IF not errorlevel 1 set Daslaufwerk=C:
IF not errorlevel 1 goto :LwFound

if exist D: dir D::xx 2>nul|find /i "datenträger"|find "System XP"|find /i "D:">nul   
IF not errorlevel 1 set DasLaufwerk=D:
IF not errorlevel 1 goto :LwFound
....
...
:LwFound
....
REM hier ist %DasLaufwerk% ermittelt, falls es zu finden ist

....
[ungetestete Skizzen]

Gruss
Biber
TankWart
TankWart 20.05.2007 um 10:23:31 Uhr
Goto Top
wow,
danke für die Antworten, war im Urlaub und werde sie morgen gleich mal testen.

Gruß
TankWart
yakazaa
yakazaa 21.10.2011 um 13:22:17 Uhr
Goto Top
Hi zusammen,
ich suche derzeit ein gleiches Skript und war froh dieses gefunden zu haben.

Leider klappt das bei mir nicht so recht:

Ich suche z.B. nach der Bezeichnung DATA (Es gibt nur eine Partition die bei mir so heißt, das Wort DATA kommt auch in keiner anderen Bezeichnung vor), liegt auf dem Buchstaben D:
Das Skript gibt mir aber "j_:\ " aus.

1.) Wieso j statt d ?
2.) Wieso das Leerzeichen hinter dem Buchstaben ?

Grüße aus Dortmund,
Dominik

EDIT:
Fehler 1 gefunden:
Das Laufwerk J: ist bei mir ein Netzlaufwerk welches auf \\Computer-1\DATA gemappt ist.
Obwohl ich es im Arbeitsplatz umbenannt hatte, heißt die Freigabe natürlich immernoch DATA face-smile

Aber wie steht es um Fehler 2 ?
Biber
Biber 21.10.2011 um 20:00:10 Uhr
Goto Top
Moin yakazaa,

Zitat von @yakazaa:
Hi zusammen,
1.) Wieso j statt d ?
2.) Wieso das Leerzeichen hinter dem Buchstaben ?

Grüße aus Dortmund,
Dominik

EDIT:
Fehler 1 gefunden:
Das Laufwerk J: ist bei mir ein Netzlaufwerk welches auf \\Computer-1\DATA gemappt ist.
Obwohl ich es im Arbeitsplatz umbenannt hatte, heißt die Freigabe natürlich immernoch DATA face-smile

Aber wie steht es um Fehler 2 ?

Fehler 2 ist erklärlich, wenn versehentlich ein Leerzeichen (SPACE) am Ende von miniversums Zeile 09 steht.
REM STREICHE die alte Zeile 09
set Lw=%%L 
REM SETZE als neue Zeile 09
set "Lw=%%L"   

Grüße und schönes Wochenende
Biber