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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 58777
Url: https://administrator.de/forum/in-bat-datei-bei-pfad-laufwerksname-statt-laufwerksbuchstaben-angeben-58777.html
Ausgedruckt am: 23.12.2024 um 13:12 Uhr
10 Kommentare
Neuester Kommentar
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
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
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
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
Versuchs mal damit:
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
@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%
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
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:
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:
Unter Win9x müsstest Du leider auf das "&&"-Zeichen verzichten und daher das Ganze in Einzelzeilen auseinanderziehen:
[ungetestete Skizzen]
Gruss
Biber
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
....
Gruss
Biber
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
Aber wie steht es um Fehler 2 ?
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
Aber wie steht es um Fehler 2 ?
Moin yakazaa,
Fehler 2 ist erklärlich, wenn versehentlich ein Leerzeichen (SPACE) am Ende von miniversums Zeile 09 steht.
Grüße und schönes Wochenende
Biber
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
Aber wie steht es um Fehler 2 ?
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
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