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
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.
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
Massaraksch
Antwort 5 von Massaraksch
Irgendwie war ich wohl abgelenkt... ;-)
Massaraksch
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
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
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
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
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
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
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 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

