zachbraff
Goto Top

Stapelverarbeitungsprogramm - Aufgabe die ich nicht lösen kann.... in ein beliebiges Laufwerk ein Ordner erstellen.....

Hallo Leutz,

hab ne Frage zu einer Aufgabe die ich Lösen muss, und ich bin der Meinung ich bin nicht im stande diese zu lösen,
da es mir an dem Wissen dazu fehlt.
Vllt is die Aufgabe voll billig, aber ich steig momentan nicht hinter.
Also wollte ich fragen wie das geht und was ich zumachen habe zu diesen Aufgaben...

Also ich soll ein Menü (Prog) erstellen

das 4 Aufgaben beinhaltet


1. wenn man diese Aufgabe auswählt so wird ein beliebiges Laufwerk erstellt.

(Ob der User dieses Menüs dann den Namen selber schreiben muss, so hab ichs gemacht, oder der Name zufällig erscheint weiß ich nich)

2. Erstelle einen Ordner in das beliebige Laufwerk(von 1.) (da liegt der Hund begraben)

3. mit der Aufgabe soll ein Spiel gestartet werden (womöglich die Wahl zwischen 2)

4. gehe zurück in die (Standard) Eingabeforderung (also das geht ja)


wie gesagt mit dem der Aufgabe 1 hab ich das mit dem selber hinschreiben gemacht und bei 2. komm ich nicht weiter

Content-Key: 31519

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

Printed on: April 18, 2024 at 06:04 o'clock

Member: superboh
superboh May 01, 2006 at 23:10:51 (UTC)
Goto Top
Hallo,

kannst Du etwas genauer erklären was Du machen möchtest?
Was meinst Du mit

Also ich soll ein Menü (Prog) erstellen
das 4 Aufgaben beinhaltet

Soll das heissen, Du möchtest eine Batchdatei (ein Script) scheiben das 4 Dinge erledigen soll?

1. wenn man diese Aufgabe auswählt so
wird ein beliebiges Laufwerk erstellt.

(Ob der User dieses Menüs dann den
Namen selber schreiben muss, so hab ichs
gemacht, oder der Name zufällig
erscheint weiß ich nich)

Was bedeutet ein Laufwerk erstellen? Ein Netzlaufwerk von einem anderen Rechner verbinden? Auf ein Laufwerksbuchstaben?
Falls ja, geht Punkt 2 mit dem Befehl

md D:\neues_Verzeichnis

wobei D das Netzlaufwerk ist. Wenn der User den Namen selbst angibt machst Du das sicher per Variable und dann musst Du einfach den Variablennamen angeben.

Vielleicht ist es aber besser wenn Du Dein Script mal postest.

Gruß,
Thomas
Member: zachbraff
zachbraff May 04, 2006 at 11:43:38 (UTC)
Goto Top
Also so sehen die bei mir aus:

1.

@echo off

if "%1"=="" GOTO Fehler
if "%2"=="" GOTO Fehler2

C:

set a=

md %1

echo Ordner wurde erstellt!

subst %2 %1
echo Laufwerk wurde erstellt!

GOTO ende

:Fehler
Echo du musst den Ordnernamen/Laufwerknamen angeben MAN!
Echo.
Echo Also einfach: 1 Ordnername Laufwerksname
Echo.
Echo Zum Beispiel: 1 TOD X:
Echo.
GOTO ende

:ende

A:


2. Hier komm ich nicht weiter


3.

@echo off
echo.
echo.
echo.


A:\menue\

spiele.exe


nagut hier halt nur die Spiele
Die Spiele habe ich noch nich.....wüsste auch nicht wie ich die ausführe


4.

@echo off
echo.
echo.
echo.
prompt $p$g


Achja das Menü so*

@echo off

echo *
echo * *
echo * Men *
echo * *
echo * *
echo
*


echo 1. Ein beliebiges Laufwerk erstellen
echo.
echo 2. Einen beliebigen Ordner im virtuellen Laufwerk erstellen
echo.
echo 3. Spiele spielen
echo.
echo 4. Zurck zur Eingabeauforderung
echo.
echo.
prompt W?hlen sie eine Aufgabe von 1-4:
Member: zachbraff
zachbraff May 04, 2006 at 11:49:28 (UTC)
Goto Top
Also wie man sieht soll ich ein Menü programmieren das 4 Dinge erledigen kann.

Bei Laufwerk hab ich virtuelles Laufwerk gemacht (subst) den Ordner dafür irgendwo hin
(D: oderso)


Also wenn ich richtig aufgepasst hab muss ich
-eine Variable bei Aufgabe 1. einbauen und dann irgendwie bei der 2. Aufgabe wieder auftauchen lassen.....

Wie mache ich das?
Member: Biber
Biber May 04, 2006 at 12:06:43 (UTC)
Goto Top
Moin zachbraff,
Kollege L4a-Thompson hat hier im Forum schon ein paar größere Batch-Menü-Konstruktionen gepostet. Suche mal nach dessen Beiträgen.
Z.b. hier Endlosschleife für Menü..

Denn das kommt bei Dir noch nicht ganz klar raus, ob das -
EIN Batch abfackeln soll
- oder ob -
es eine Menue.bat gibt und verschiedene 1.bat, 2.bat, 3.bat
... die jeweils vom CMD-Prompt aufgerufen werden sollen ( der so genannte Herbst-1982-Standard).

Zur Detailfrage "wie lege ich ein Unterverzeichnis in einem Subst-Laufwerk an?"
Genau wie in jedem anderen auch. Mit "md unterverzeichnis".

Die Eingabewerte für "Welches Spiel?" oder "Name des Unterverzeichnisses?" kannst Du in neueren CMD-Shells mit
Set /P variable=Welches Spiel?
abfragen.

Wie gesagt, ich empfehle da erstmal L4a-Thomsons Beispiele.
Gruß
Biber
Member: zachbraff
zachbraff May 04, 2006 at 13:57:47 (UTC)
Goto Top
hmm also ne Schleife bekomme ich hin

aber wie geht das mit dem beliebigen Laufwerk?
Wie mach ich die Variable so das ich bei 2. den Ordner in dieses beliebige virtuelle Laufwerk bekommen??

das check ich net
Member: Biber
Biber May 04, 2006 at 16:51:30 (UTC)
Goto Top
Also,
wenn Du alles in einem Batch abfackelst statt in 5 verschiedenen, dann kannst Du am Anfang, bevor Du Dein Menü anzeigst, eine Variable (leer) definieren

Set SubstLw=
..

In Deinem Menüpunkt "Laufwerk anlegen" fragst Du ab:

Set /p "SubstLw=Geben Sie einen Laufwerksbuchstaben zwischen 'M' und 'Q' an! "
REM ...oder was auch immer an dem Rechner "frei" ist
For %%i in (M N O P Q ) do if /i [%%i]==[%substLw] subst %SubstLw% c:\temp
REM Falls Benutzer tatsächlich M,N....oder Q eingegeben hat..

~~~~~~~~
Beim Menüpunkt "Unterordner anlegen" kannst Du dann prüfen:
If [%substLW%]== goto KeinSubstLaufwerkdefiniert
if not exist [%substLw%]:\ goto SubstLwExistiert nicht
REM ...wenn Du es bis hier geschafft hast:
Set /p "Unterordner=Geben Sie einen Namen für ein Unterverzeichnis an! "
md %substlw%\%unterordner%
If errorlevel 1 Echo md %substlw%\%unterordner% konnte nicht angelegt werden!
If not errorlevel 1 dir %substlw%\%unterordner%
pause
...

Versuche mit der Skizze erstmal zu spielen - wenn es nicht mehr weitergeht, poste was Du hast.

Gruß
Biber
Member: zachbraff
zachbraff May 06, 2006 at 15:44:53 (UTC)
Goto Top
ok also mit viel Geduld und Beherrschung habe ich die ganze Zeit herum probiert. Ohne Erfolg


Also zunächstmal, weiß ich die Hälfte aller Befehle da gar nicht und hab keine Ahnung wie wann und wo ich die einsetzten muss, wie ich schrieben soll.

Ich habe eigentlichvorgehabt es in mehreren Batch Dateien auszuführen.
Zum vorstellen: Der Ordner heißt "Menue" dort sind 5 Batch-Dateien drin:
Die Namen sind:

1

2

3

4


Menue


Und die Aufgaben sind halt so aufgeteilt wie die Datei schon sagt, d.h. die Datei "1" löst die Aufgabe 1
und die Datei "Menue" macht auch nur die Aufgabe vom Menü

So kann man dann erst die Batch-datei "Menue" starten dann, wie man ganz oben noch sehen kann, gebe ich 1 ein somit starte ich auch die Datei "1"
Dann habe ich es so gemacht, dass man drauf hingewiesen wird, dass man einen Namen eingeben soll: und so wird ein beliebiges(vom Benutzer) virtuelle Laufwerk erstellt.

dann soll bei Nummer 2 also Datei "2" dieser Unterordner in diesem virtuellen Laufwerk von Nummer 1 erstellt werden.
Das heißt ich muss ne Verbindung von "1" zu "2" damit ich weiß wie ich bei "2" den Ordner im Laufwerk erscheinen lasse.


Wenn das gar nicht geht mit mehreren Batch-Dateien dann sollte man das schon erwähnen denn ich halte mich evt. an etwas auf wo ich gar nicht weiter komme und ich es gar nicht merke.


PS: Ich glaube das Problem liegt auch daran, dass ich nicht genau weiß wie und wann ich den Befehl "set" verwende. Am besten wäre wenn mir einer ein wenig sagen könnte wie ich das richtig anwende.
Member: Biber
Biber May 06, 2006 at 17:16:35 (UTC)
Goto Top
So, also doch mehrere Einzelbatches...
Da hätten wir uns ein paar Zeilen sparen können..
Egal, hier im Forum verwende ich immer zu 100% recyclete Elektronen zum Posten.

Wenn Du unter Menüpunkt 1 (="1.bat")ein Subst-Laufwerk definieren sollst und und Menupunkt 2 mit "2.bat" ein Unterverzeichnis in diesem Laufwerk angelegt werden soll, dann sorge Du durch Festlegung der Rahmenbedingen dafür, dass Du alle Fehler und alle Szenarien abfangen kannst.
Ist ja Dein Menü.

Heißt z.B., Batch 1.bat
- definiert ein Laufwerk namens "S:" (=das ist Deine Festlegung; wir nehmen auch an, es gibt kein Netzlaufwerk und keine andere Platte mt diesem Laufwerksbuchstaben) meinetwegen auf c:\temp
- das kann nur klappen, wenn es noch kein Subst Laufwerk s:\ gibt --->wenn schon eins angelegt wurde: Info an Anwender

und der Batch 2.Bat kann nur laufen, wenn das Laufwerk S: existiert ->wenn nicht: Info an Anwender.

Also:
:: -- 1.bat
echo off
if exist s: echo Laufwerk S: existiert schon!
if exist s: menue.bat
subst s: c:\temp
echo Laufwerk S:\ ist definiert und kann wie ein normales Laufwerk benutzt werden.
pause
menue.bat
::--- ende 1.bat

:: --2.bat
echo off
if not exist s: echo Laufwerk S: existiert noch nicht!
if not exist s: pause
if not exist s: menue.bat
if not exist s:\unterzeichnis md s:\unterzeichnis
if exist s:\unterzeichnis echo Unterverzeichnis "Unterverzeichnis" auf Laufwerk S: angelegt.
pause
menue.bat
::--2.bat

Set-Befehle brauchst Du so gar nicht; Hilfe zu Set gibt es am CMD-Prompt mit Set/?

Wie schon weiter oben geschrieben, das Lösen dieser Menü-mit-Unteraufgaben-Aufgabe mit -zig einzelnen Batchdateien ist state-of-the-art von 1982 kurz nach Erfindung der Alufolie. Das hat also die Eleganz und spielerische Leichtigkeit eines Rudolf-Scharping-Chansons.

Ein in sich geschlossener Batch a la L4a-Thompson wäre zeitgemäßer.

HTH Biber