Supportnet Computer
Planet of Tech

Supportnet / Forum / BS-Sonstige

Probs bei ersten Batch-Programm





Frage

Hi Leutz, ich will über das batchprogramm ein exe-file aufrufen. Aber im Pfad sind Leerzeichen drinnen und deshalb kann dos mir das nicht lesen, welches Zeichen kann ich anstatt der Leerzeichen verwenden!!! Mein Pfad: C:\Programme\AutoCad LT 2000i Deu\aclt.exe und er sagt mir immmer, dass er diese Datei nicht findet. Weil er die Leerzeichen nicht verarbeiten kann. C:\Programme\AutoCad Danke im Voraus!! mfg sToNy

Antwort 1 von frindly

setze den befehl in anführungszeichen. dann sollte es gehen!
bsp: "C:\Programme\AutoCad LT 2000i Deu\"aclt.exe


Antwort 2 von sToNy

Danke es funktioniert.

Aber ich hätte da noch ein problem:

ich hab zwei batch-dateien:
in der ersten wird eine liste.txt aufgebaut mit allen datein in einen ordner. In diese Liste werden die Namen der einzelnen Datein hineingeschrieben. All diese Datein können mit AutoCad aufgerufen werden.
Und im 1. Batchprogramm ist weiters noch eine forschleife die alle Namen von list.txt hernimmt und Batch 2 aufruft.

In Batch 2 wird dann AutoCad aufgerufen. Aber nicht die Datein dazu also da kommt nur ein leeres Dokument, aber ich brauche die Datein.

Antwort 3 von Limbius

poste beide Dateien doch einfach mal dann ist´s einfacher für uns ;-)

Antwort 4 von Massaraksch

Wie wär's, wenn du deine Batches mal hier "veröffentlichst"? Dann kann man eventuelle Fehler bestimmt viel schneller finden...

Massaraksch

Antwort 5 von Massaraksch

Irgendwie war ich wohl abgelenkt... ;-)

Massaraksch

Antwort 6 von Massaraksch

Aber zumindest unter WinNT/2K/XP sollte das ganze mit einer Zeile zu erschlagen sein:

for %%i in ("X:\Langer Pfad\*.*") do "C:\Programme\AutoCad LT 2000i Deu\aclt.exe" "%%~fi"

Massaraksch

Antwort 7 von stony

Danke leutz,
aber das vorherige problem hab ich schon gelöst. Danke trotzdem für die postz.

Aber nun ein anderes problem:

1.Batchcode:
for /F %%I in (liste1.txt) do call aufruf.bat %%I

2.Batchcode:"aufruf.bat"

Start "C:\Programme\AutoCAD LT 2000i Deu\aclt.exe" %1

liste1.txt:

d:\alex\import\Fundamentplan\10'\01x10x01.dwg
d:\alex\import\Fundamentplan\15'\01x15x01.dwg
d:\alex\import\Fundamentplan\16'\01x16x01.dwg
d:\alex\import\Fundamentplan\20'\01x20x01.dwg
d:\alex\import\Fundamentplan\20' mit Gangcontainer\02x20x08x02x20.dwg
d:\alex\import\Fundamentplan\30'\01x30x01.dwg

die fünfte zeile von der liste kann er mir nicht lesen weil hier Leerzeichen findet. Was soll ich machen dass er mir die die 5. Zeile schlussendlich auch im Autocard dann aufmacht.

ich hab probiert den parameter im aufruf.bat in anführungszeichen zu setzen hat aber nicht funktioniert irgendwie auch logisch und ich hab in der liste die 5 zeile in " gesetzt hat aber auch ned gfunkt.
danke im voraus

mfg stony

Antwort 8 von Massaraksch

???

Wozu hab ich denn den Einzeiler gedichtet? Aus Langeweile?

Ersetze mein "X:\Langer Pfad" durch dein Verzeichnis der DWG-Dateien und es sollte (zumindest unter den angesprochenen BS) funktionieren.

Dann brauchst du keine zwei Batches und auch keine Liste erzeugen.

Massaraksch

Antwort 9 von Massaraksch

Nachtrag: Der Fehler bei dir ist, daß der Befehl

for /F %%I in (liste1.txt) ... blabla

nur jeweils das erste Wort (bis zum ersten Leerzeichen) jeder Listenzeile auswertet. Daran ändern auch Anf.zeichen nichts.

Korrektur wäre:

for /F "tokens=*" %%I in (liste1.txt) ... blabla

"tokens=*" heißt, er soll ALLE Wörter einer Zeile nehmen.

Aber wie gesagt, eigentlich zu umständlich mit zwei Batches und Listendatei.

Massaraksch

Antwort 10 von manei

Hallo,

wenn er gerne mit 2 Batches arbeiten will ist das doch auch OK.

Dann muß aber %%I in Hochkomma gesetzt werden, ansonsten wird nach jedem Leerzeichen eine neue Umgebungsvariable erzeugt; erliest das schon nur wird die Zeile dann aufgeteilt in %1, %2, %3 usw..

Also

for /F %%I in (liste1.txt) do call aufruf.bat "%%I"

MfG maneich

Antwort 11 von stony

Danke vielmals an alle!
Ihr habt mir wirklich viel weitergeholfen.

Danke Danke Danke

mfg
stony

Antwort 12 von Massaraksch

@manei
Ich schreib das doch nicht aus Jux und Dollerei. Die Anf.zeichen sind in diesem Fall völlig irrelevant, denn der FOR-Befehl liest standardmäßig nur den ersten Token (Wort) bis zum ersten Trennzeichen (z.B. Leerzeichen) ein. Steht auch eindeutig in der Beschreibung des FOR-Befehls. Oder teste es einfach mal. Dann siehst du es...

Massaraksch

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: