evinben
Goto Top

Wenn in set p nur der Laufwerksbuchstabe, anstatt des Verzeichnisses, eingegeben wird, dann nach der dazugehörigen Variable Doppelpunkt stellen

Grüße,
ich komme an einem bestimmten Punkten nicht weiter und brauche wieder eure Hilfe:
Mit
set /p "Quelle=Geben Sie das Quell-Verzeichnis bzw. den Laufwerksbuchstaben mit den Windows-Installationsdaten ein: "  
dir %Quelle%
wird der Benutzer zur Eingabe des Verzeichnisses oder des Laufwerksbuchstabens aufgefordert.
Wie soll die Befehlszeile aufgebaut sein, wenn anstatt eines Verzeichnisses ein Laufwerkbuchstabe auch mal ohne Doppelpunkt eingegeben werden darf? Da der Doppelpunkt für die vollständige Syntax wichtig ist, muss er nach der Variable (%Quelle%) bei Bedarf hinzugefügt werden.

(Mit dem Schalter „/i“ werde ich zusätzlich jedem Befehl, der diesen unterstützt, die Groß-Kleinschreibung erlauben).

Danke sehr für die Unterstützung.

Content-ID: 173607

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

Ausgedruckt am: 21.11.2024 um 21:11 Uhr

bastla
bastla 23.09.2011 um 16:04:31 Uhr
Goto Top
Hallo evinben!

Soferne nur ein Laufwerksbuchstabe eingegen wurde, enthält %Quelle% nur ein Zeichen - daher:
if not defined Quelle echo Es wurde nichts eingegeben & goto :eof
if "%Quelle:~1%"=="" set "Quelle=%Quelle%:"  
Grüße
bastla
evinben
evinben 23.09.2011 um 17:43:33 Uhr
Goto Top
Hallo bastla,

wie soll ich mich nicht freuen? Einer mag mich hier (Spaß).

So wird es also gehandhabt. Da muss ich noch paar Brötchen verdauen.
Ich werde es gleich ausprobieren und werde mich bald wieder melden.

Danke schön!
evinben
evinben 23.09.2011 um 18:57:24 Uhr
Goto Top
es klappt wunderbar, verstehe leider die Funktion nicht. Wenn ich e: eingebe, dann zeigt es mir als Rückmeldung folgende Zeile an:
if ":\Programm" == "" set "Quelle=e:\Programm:"
Für mich ist nicht verständlich, warum in der ersten Variable ("%Quelle:~1%") nur ":\Programm" - also ohne dem Laufwerksbuchstaben davor - angezeigt wird, aber in der zweiten Variable mit e vollständig übergeben wird. Woher kommt plötzlich dieses e?
(eigentlich "dieser e", weil es "Der Buchstabe" und nicht "Das Buchstabe" ist, aber egal).
Bieber, wie so kommt hier die Formatierung durcheinander - ich gebe nur die Schrägstriche, ohne Semikolon?

Etwas anderes:
Wie kann ich mit echo die Ausgabe eines Befehls anzeigen lassen?
Folgendes habe ich versucht, und auch mit FOR ist es mir nicht gelungen.
Laufwerke=fsutil fsinfo drives
echo folgende Laufwerke sind verfügbar: "%Laufwerke%"  
Was für Grundregeln beachte ich da wieder nicht?
60730
60730 23.09.2011 um 19:19:42 Uhr
Goto Top
moinsen...

Wir verdauen hier nur ganze Tiere, keine Teile...

Wenn in set p nur der Laufwerksbuchstabe, anstatt des Verzeichnisses, eingegeben wird, dann nach der dazugehörigen Variable Doppelpunkt stellen
Das war deine Fragestellung, die Meister Bastla dir wie folgt beantwortet hat:

Soferne nur ein Laufwerksbuchstabe eingegen wurde, enthält %Quelle% nur ein Zeichen - daher:
if "%Quelle:~1%"=="" set "Quelle=%Quelle%:"

passt doch zur Frage....

Bastla <> Biber
Biber <>Bieber

Was für Grundregeln beachte ich da wieder nicht?
Die allererste stelle deine Frage so, das Sie auch dein Problem beschreibt, du kaufst doch auch keinen Presslufthammer, wenn dich deine Frau zum Bäcker schickt...
Skyemugen
Skyemugen 23.09.2011 um 19:22:48 Uhr
Goto Top
Aloha,

Für mich ist nicht verständlich, warum in der ersten Variable ("%Quelle:~1%") nur ":\Programm" - also ohne dem Laufwerksbuchstaben davor - angezeigt wird, aber in der zweiten Variable mit e vollständig übergeben wird. Woher kommt plötzlich dieses e?

Ganz einfach: Wenn du e: eingibst, ist Zeichen #1 [e] und Zeichen #2 ist [Doppelpunkt], da in "%Quelle:~1%" die erste Stelle übersprungen wird aber ungleich leer ist, bleibt die ursprüngliche Variable unverändert und heißt dann e:

Denn die Abfrage lautet ja: Wenn Variable-ab-Stelle-1 leer ist, dann setze einen Doppelpunkt hinter die Variable.
Veranschaulicht: Eingabe: e > if "" == "" set "Quelle=e:"

Bieber, wie so kommt hier die Formatierung durcheinander - ich gebe nur die Schrägstriche, ohne Semikolon?
au weia, hoffentlich liest er das nicht *gg*

Wie kann ich mit echo die Ausgabe eines Befehls anzeigen lassen?
Folgendes habe ich versucht, und auch mit FOR ist es mir nicht gelungen.
for /f "delims=" %%i in ('fsutil fsinfo drives') do echo %%i  

...

Laufwerke=fsutil fsinfo drives
sind wir hier in VisualBasic oder wie? ^_^

greetz André
evinben
evinben 23.09.2011 um 20:20:52 Uhr
Goto Top
Gruß TimoBeil,
Wir verdauen hier nur ganze Tiere, keine Teile...
Sorry, das war aber versehentlich, klingt aber gar nicht so schlecht, oder? Freundlicher als Bibbb...

Das war deine Fragestellung, die Meister Bastla dir wie folgt beantwortet hat:
hm..

Skyemugen, jetzt begreife ich es allmählich, generell in der Batch-Welt, bin ich aber noch ein kleiner Frischling.
Wow, was für tolle Leerer ich hier habe.

sind wir hier in VisualBasic oder wie? ^_^
So ist das. Bei mir kommt es alles durcheinander und mit deiner Hilfe habe ich es realisiert, wie ich überhaupt unbewusst auf die Idee gekommen bin. Ich war mir absolut sicher, dass es funktionierte. Ja klar, aber wenn die Dateierweiterung .vbs wäre. Ein Kumpel, der mit VB ausgewachsen ist, hat mir mitgeteilt, dass das seine Lieblingssprache wäre. Ich habe oft drüber nachgedacht und denke ab und zu immer so ernst drüber. Ehrlich gesagt passt mir a Bätch'le lieber - mit meinen neutralen Kenntnisse natürlich so als Neuling betrachtet. Habe aber irgendwie vom lesen im i-net den globalen Eindruck, dass wenn jemand sich in irgendeiner Aufgabe vertieft, wird dem Batch sofort unflexibel. Soweit bin ich aber noch lange nicht. Ob das so mit meinem Empfunden stimmt...?
Egal, ich mach Batch und ich bin begeistert, was ich alles so mit meinen Träumen verpasst habe.

Hey, wenn mein Batch endlich fertig ist (das wäre mein längster Batch bisher, oder "das Batch"???), und wenn ihr neugierig seid, dann kann ich es hier gerne veröffentlichen. Es wird eventuell für euch etwas unlogisch aufgebaut erscheinen, aber vielleicht freut ihr euch drüber. Ich wäre selbst sehr gespannt, was ihr so dazu sagen würdet und noch mich sehr freuen, wenn jemandem das Programmchen vom Nutzen wäre (falls funktioniert!)

Bis bald
mathe172
mathe172 23.09.2011 um 21:44:11 Uhr
Goto Top
Hallo,
[OT]
Wow, was für tolle Leerer ich hier habe.
Ich hoffe ja mal nicht, dass sie dir den Kopf gleich mitleeren face-wink
[/OT]
MfG,
Mathe172
evinben
evinben 24.09.2011 um 08:17:58 Uhr
Goto Top
Ich hoffe ja mal nicht, dass sie dir den Kopf gleich mitleeren.
;), danke für den Fehler-Tipp. Nein, mit "leerem Kopf" bin ich aus diesem Forum noch nie rausgekommen.
Schau..., meine Grammatikkenntnisse sind ein bisschen verstärkt worden. Eins ist es streng zu wissen und anderes ist es im Alltag mit Leichtigkeit umzusetzen. Daher danke nochmal für jeden Hinweis.
Eigentlich sollte speziell der genannte Fehler mit aufgefallen sein. Ich stelle fest, dass ich mich zu viel auf mein Grammatikschreibprüfungsprogramm verlasse, ohne dabei gründlicher nachzukontrollieren. Also dass ich beim Vertippen und anschließendem Rechtsklick und „Wortauswahl“, mich überbeeile, ohne dabei die kleinen Unterschiede in den vorgeschlagenen Wörtern zu bemerken. So habe ich oft ein Wort mit völlig falscher Bedeutung ausgewählt, so dass nicht selten es ganz peinlich endete. Ich werde mich bemühen gestärkter darauf zu achten.
Einen feinen Samstag euch allen.