Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Batch dateien Problem: möchte CD mit inhalt einer Datei kombinieren





Frage

also ich hab mir ein programm geschrieben: @echo off COPY TEST.TXT+CON > NUL CD |TYPE TEST.TXT das funkt net so wirklich ich will auf jedenfall das ich dann in den ordner wechsele wo in der TEST.TXT steht wenn ich nach dem COPY befehl C:\ eingebe sollte eigenlich er ja nach C:\ wechsel aber es kommt nur Datei nicht gefunden. muss ich das irgendwie anders kombinieren ? bitte helft mir Google hat auch net wirklich geholfen

Antwort 1 von disco

vertshe in keinster weise, was du überhaupt machen willst.
als erste leine hilfe könntest du ja aml das @echo off weg lassen...

... und dann nochmal genau mit punkten und kommas erklären, was du machen möchtest.

Antwort 2 von HyP3r

jo hab ich mir gedacht das das nicht gleich jeder kapiert also im grund will ich eigenlich nur das das programm frägt bitte geben sie pfad oder so ein dann soll er da hin wechseln ich hab die idee bekommen als ich gelsen habe das man mit copy + und con in eine datei einen text eingeben kann dann hab ich den befehl type gesehen und hab mir gedacht inhalt von datei + cd befehl dürfte funken aber es geht nicht egal ob cd|type datei.txt oder cd type datei.txt oder irgendwie gar nixxx geht

Antwort 3 von TheBlackBird_

Hi,

In welcher Umgebung soll das Ganze denn nachher laufen? Echtes DOS? Oder in einer Eingabeaufforderung von Windows? Wenn Windows, welches?

Cu TheBlackBird ®

Antwort 4 von HyP3r

es soll halt in der normalen .bat dateinen umgebung verlaufen also glaube ich echtes dos aber das windows is mir eigenlich egal weil der choice befehl z.b. geht ja bei XP gar net hab ich aber schon repariert ^^ sag mir einfach wie ich es machen soll obs läuft oder net is mir dann egal ich hab im haus eigetlich genügend PC´s mit genügend vielen Betriebssytemen also is es eigentlich egal

Antwort 5 von TheBlackBird_

Hi,

Zitat:
...also glaube ich echtes dos aber das windows is mir eigenlich egal weil der choice befehl...


Und genau da geht es schon los. Wie Du selbst gemerkt hast, kennt die Eingabeaufforderung von XP z.B den Choice-Befehl standardmaessig nicht. Andersherum funktionieren einige Sachen unter Dos oder in der Eingabeaufforderung eines Windows 9X nicht, die dafuer aber in einer XP-Eingabeaufforderung sehr gut laufen. Daher ist es nicht ganz unwichtig, wo das ganze nachher funktionieren muss.

So wie ich Dich bisher verstehe, willst Du eine Userabfrage die ein Laufwerk, und einen Pfad abfragt. Anschliessend moechtest Du, dass die Batch in eben dieses/n Laufwerk/Pfad wechselt.

Unter XP/W2k wuerde ich da z.B. mittels SET /P die Usereingaben in Variablen schreiben wollen. Anschliessend wuerde ich dann mittels
CD /d %VAR_LW%:\%VAR_PFAD% in den gewaehlten Pfad wechseln. Wobei der Schalter /d bewirkt, dass auch gleich das Laufwerk gewechselt wird.

Das Ganze koennte dann aussehen wie folgt:


@ECHO OFF
.
.
.
:lwset
CLS
ECHO.
ECHO. Geben Sie das Laufwerk (nur den Buchstaben) an...
ECHO.
SET /P var_lw=
IF NOT DEFINED var_lw GOTO :lwset
:pfadset
CLS
ECHO.
ECHO. Geben Sie den kompletten Pfad (ohne Laufwerksbuchstaben) an...
ECHO.
SET /P var_pfad=
IF NOT DEFINED var_pfad GOTO :pfadset
CLS
CD /d %var_lw%:%var_pfad%
.
.
.
EOF


Dabei wird dann ein Text ausgegeben, was erwartet wird und auf eine Usereingabe gewartet. Die Abfrage (IF NOT...) sorgt dafuer, dass die Variablen nicht leer bleiben, damit Dein CD-Befehl nicht anschliessend ohne LW und Pfad dasteht.... Probleme wird es dabei dann aber geben koennen, wenn im Pfad Leerzeichen enthalten sind. Aber das ist dann wieder ein anderes Thema

Das mal so fuers Erste
Cu TheBlackBird ®

Antwort 6 von TheBlackBird_

Hi,

Hmm... trotz Vorschau wieder einen BackSlash vergessen. Die Zeile mit CD muss bei obigem Beispiel nat.
CD /d %var_lw%:\%var_pfad% lauten.

Cu TheBlackBird ®

Antwort 7 von HyP3r

erst einmal ein fettes THX weil ich noch nicht gewusst habe das man mit Set variabeln setzten kann und diese dann wieder in Cd oder so wieder verwenden kann dafür mal THX und funken tuts auch supi :)

noch ne frage kann man auch
Set /p %var_al% machen für den ganzen pafd

also

@echo off

:eingabe
echo bitte geben sie den ganzen pfad ein
echo.
Set /p var_al=
if not denied var_al GOTO eingabe
:wechslung
CD /d %val_al%

geht das nicht warum weil ich größere dinge mit DOS vorhab will ich es lernen und deshalb frag ich so genau nach

Antwort 8 von TheBlackBird_

Hi,

Zitat:
weil ich größere dinge mit DOS vorhab


Oha... na dann nur zu. Nur solltest Du Dir dann evtl. eine etwas gewissenhaftere Arbeits-/Schreibweise angewoehnen. ;-)

Schau Dir allein Dein kurzes Beispiel mal an.
Zitat:
if not denied var_al GOTO...
wird so wohl nicht funktionieren. Und wenn dann eine Batch etwas umfangreicher wird, dann wirst Du, so wie ich Deine Texte hier bisher sehe, sehr grosse Probleme bekommen. Das gilt allerdings nicht nur fuer Batch-Dateien, sondern fuer so ziemlich jede Programmierung. (das aber nur so nebenbei.)

Zu Deiner Frage:
Sicher kannst Du auch den kompletten Pfad in einer einzigen Variable erfassen, bzw. durch den User eingeben lassen. Das bleibt ganz Dir bzw. Deinem Vorhaben ueberlassen. Soll heissen: bis auf den Fehler mit dem DEFINED sollte Dein CodeSchnippsel funktionieren.

btw: Um mehr ueber die moeglichen Befehle und deren Syntax zu erfahren kannst Du unter XP bei Start -> Hilfe&Support einmal Befehlszeilenreferenz eingeben, und Dich belesen.
Weiter finde ich, dass man fuer die Anfaenge, und ggf. auch spaeter noch, immermal einen Blick bei http://www.antonis.de/ in die DOS-Tutorials werfen kann, um ein paar Anregungen zu erhalten.
Fragen im SupportNet solltest Du nat. auch immer als Moeglichkeit zur Problemloesung in Betracht ziehen. ;-))

Cu TheBlackBird ®

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: