ASCII Spaltenweise bearbeiten

Du hast eine Frage aber bist neu im Thema?
Antworten
frank9652
Norton Commander
Beiträge: 142
Registriert: Di 27. Mär 2007, 13:03
Wohnort: Göppingen

ASCII Spaltenweise bearbeiten

Beitrag von frank9652 »

Hallo Leute!

Zu folgendem Problem hätte ich gerne eine Lösung.

Ich kopiere von SD-Karte alle Hochformatbilder in das Verzeichnis C:\BILDER1 diese Bilder sollen gedreht werden.

Dazu erstelle ich eine ASCII-Liste der Bildernamen mit

dir /b /o >C:\DOSTOOLS\PV\BATCH2.TXT

Die ASCII-Datei (mit 3 Beispielbildern) sieht dann so aus:

PICT1534.JPG
PICT1535.JPG
PICT1536.JPG

Um die Bilder drehen zu können, will ich daraus eine Batch machen, dessen Zeilen so aussehen:

jpegtran -rotate 90 c:\bilder1\pict1534.jpg c:\bilder2\pict1534.jpg
jpegtran -rotate 90 c:\bilder1\pict1535.jpg c:\bilder2\pict1535.jpg
jpegtran -rotate 90 c:\bilder1\pict1536.jpg c:\bilder2\pict1536.jpg

Ich kann mir nicht vorstellen, daß man so etwas mit dem COPY-Befehl hinbekommen würde.

Ich sehe da zwei Lösungswege.

Lösungsweg eins:
Jemand codet mir ein Programm das in einer ASCII-Datei die Platzhalter durch die Dateinamen aus Batch2.txt ersetzen kann.
Die ASCII-Datei hätte 999 Zeilen mit Platzhaltern von 001 bis 999. Das würde in meinem Fall mehr als ausreichen, da meine Digicam SD-Karten bis maximal 1 GByte ansprechen kann und auf ihr sowieso nicht mehr als ca. 500 Bilder draufpassen.
Die ASCII-Datei mit den Platzhaltern könnte so aussehen:

jpegtran -rotate 90 c:\bilder1\xxxxxxxxx001 c:\bilder2\xxxxxxxxx001
jpegtran -rotate 90 c:\bilder1\xxxxxxxxx002 c:\bilder2\xxxxxxxxx002
jpegtran -rotate 90 c:\bilder1\xxxxxxxxx003 c:\bilder2\xxxxxxxxx003

Zwischen -rotate und der Zahl 90 sind zwei Leerzeichen, da ich eine identische ASCII für Linksdrehung erstellen möchte, dessen Befehl so aussieht:

-rotate 270

Lösungsweg zwei:
Es gab mal in grauer Vorzeit einen (oder mehrere) Editor(en), der ASCII-Dateien spaltenweise bearbeiten konnte, aber ich weiß den Namen nicht mehr.
Wenn jemand weiß, wie das Teil heißt und wo es den Editor noch gibt für dessen Hinweis wäre ich dankbar.

Gruß Frank
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Beitrag von DOSferatu »

Lustig. So'n Programm hab ich schon vor Jahren geschrieben.

Eigentlich ZWEI Programme.
1.) Das eine ist dazu da, eine Batch zu erstellen und zwar mit Batchzeichen, die fortlaufende Nummern enthalten. Und ja, das wird mit Platzhaltern gemacht. Man gibt dazu einfach einen Befehl in ner Kommandozeile (oder halt von ner anderen Batch aus) ein und der erstellt die Batch. Es heißt MAKEBAT.EXE

2.) Das zweite Programm heißt EX. Es ist dazu da, alle EXE in einem Verzeichnis von einem Programm ausführen zu lassen, die auf eine "Maske" passen. Das ausführende Programm ist dabei der erste Parameter, die anderen Parameter sind die, die dem Programm übergeben werden. Will man z.B. von PV alle JPG-Bilder, die mit PIC* anfangen, in PCX wandeln lassen (nur ein Beispiel), kann man folgendes eingeben:

EX PV (PIC*.JPG /c7

EX = Mein Programm EX.EXE

PV = Der PV. Es muß nicht im selben Verzeichnis liegen, es kann auch im DOS-Pfad liegen. Es muß aber eine EXE oder COM sein, keine BAT, die die PV.EXE aufruft. (Dazu hätte ich halt einen BAT-Interpreter einbauen müssen.)
Will man ein Programm aufrufen, das von einer BAT gesteuert wird, geht das aber meiner Meinung nach auch, über folgenden Umweg: (PV.BAT ist jetzt ein Beispiel)

EX COMMAND.COM PV.BAT (PIC*.JPG /c7

D.h. man ruft die COMMAND.COM auf, die ja bekanntlich BAT-Dateien verarbeitet.

Wie schon bemerkt: Die Klammer ( wird dazu benutzt, um denjenigen Parameter zu benennen, der das File bestimmt, das mehrmals benannt wird.

Problem ist hier, wenn man natürlich Quell- und Zielfile als Namen angeben muß, weil es ja dann ZWEI solche Parameter sind. Aber dafür wäre dann eben MAKEBAT geeignet.

MakeBat ist aber relativ alt, da habe ich das etwas... ähem - umständlicher gelöst:

Die hochzuzählenden Ziffern werden EINZELN hochgezählt. Dabei ist Ziffer 0 die erste (z.B. die Einerstelle), Ziffer 1 die Zehner und so weiter. Weil die {} selten in Dateinamen vorkommen, habe ich die damals dafür benutzt. aber eigentlich hätte ich das heute auch anders machen können.

Für Deinen Fall wäre dann der MAKEBAT zu übergeben:


jpegtran -rotate 90 c:\bilder1\pict{3}{2}{1}{0}.jpg c:\bilder2\pict{3}{2}{1}{0}.jpg

Dann würde er alle Dateien von PICT0000.jpg bis PICT9999.jpg bearbeiten.

Achso, übrigens: Ich habe auch mal ein Programm namens RENAMER geschrieben, mit dem man Dateien durchnumeriert umbenennen kann. Es geht mit Kommandozeile UND mit ner (Text-) Oberfläche. Da kann man dann umzubennende Dateien markieren, gibt den Umbenennungs-"Schlüssel" ein (relativ leicht zu kapieren) und dann wird vorwärts- oder rückwärtslaufend umbenannt. (Oh, Mann... was ich schon alles programmiert hab...)

ABER:
Aber ich bin grad an einem anderen Projekt dran, das einen Bug hat, den ich gerade nicht finde. Kennt man als Programmierer: Wenn man sich zu sehr in einen Sourcecode vertieft, sieht man irgendwann den Wald vor lauter Bäumen nicht mehr - dann braucht man etwas "Abstand", guckt etwas später nochmal drauf und findet den Fehler. Um diesen "Abstand" zu bekommen, programmiere ich zwischendurch manchmal ein kleines anderes Projekt und DEIN Problem ist... simpel genug, um da ein neues, besseres MAKEBAT2 zu bauen, das etwas komfortabler ist. Das wäre dann so:

MAKEBAT2 *1320-1495 jpegtran -rotate 90 c:\bilder1\pict****.jpg c:\bilder2\pict****.jpg

Und würde an die Stelle, wo die **** stehen, die Zahlen 1320 bus 1495 setzen. Der erste Parameter wäre also der, der den Zahlenbereich angibt. Der Stern davor würde das Zeichen angeben, das der Platzhalter ist. Man kann dann hier auch ein anderes Zeichen als den * benutzen, falls man den für etwas anderes braucht. Gibt man keinen Platzhalter an, wird der * benutzt. Es wird dann mit Führungsnullen gearbeitet, wenn man mehrere Sterne angibt. Also:

MAKEBAT2 *1-73 jpegtran -rotate 90 c:\bilder1\pict****.jpg c:\bilder2\pict****.jpg

Würde alles von pict0001.jpg bis pict0073.jpg betreffen.

Gibt man dagegen nur einen Stern an oder eben weniger als die Zahlen Ziffern haben, gibt es keine Führungsnullen, oder nur so viele, wie es die Sterne zulassen:

MAKEBAT2 *1-73 jpegtran -rotate 90 c:\bilder1\pict*.jpg c:\bilder2\pict*.jpg

Würde alles von pict1.jpg bis pict73.jpg betreffen.

MAKEBAT2 *1-167 jpegtran -rotate 90 c:\bilder1\pict**.jpg c:\bilder2\pict**.jpg

Würde von pict01.jpg bis pict 09.jpg mit Führungsnullen arbeiten, pict10.jpg bis pict99.jpg dann normal. Und ab pict100.jpg bis pict169.jpg dann eben 3 Ziffern, obwohl nur 2 Sterne da sind, weil es da natürlich keine der Ziffern einfach weglassen würde.

WIE WÄRE DAS?

(Und ehrlich - das wäre wirklich nicht schwer zu programmieren.
Achja. Ich könnte das auf 2 Arten machen.
Einmal als eine EX2.EXE, die dann diese Parameter hat und es gleich ausführt, so wie EX.EXE, ODER als eine MAKEBAT2.EXE, die eine BAT erstellt. Möglicherweise auch ein Programm, das für beides benutzt werden kann, muß dann irgendwie angegeben werden, ob man eine BAT haben will oder nicht. Vielleicht mach ich es dann so, daß man VOR diesen *1-99 Parameter noch einen Filenamen (irgendwas .BAT) angeben muß, damit es eine BAT dieses Namens erstellt und wenn man das nicht macht, führt es das gleich aus, wie mit EX.

Hm. Mal sehen. (Ja, ich programmiere halt gerne mal so kleine Sachen...)
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Beitrag von DOSferatu »

OK, ich hab jetzt 6 Stunden an dem Ding rumgebastelt, inklusive Tests und Schreiben der Anleitungen / Hilfen in englisch und deutsch.

Das Programm heißt NUMLIST und kann von meiner Seite runtergeladen werden: http://www.imperial-games.de/html/dosa2.htm

Damit ich mir die Erklärung sparen kann, poste ich einfach mal die deutsche Anleitung hier rein:

----------------------------
Benutzung von NUMLIST

NUMLIST batname.bat *1024-1028.5/10 example.exe File****.BMP File****.BMP

batname.bat
kann weggelassen werden. Wenn Sie einen Namen für eine Batch- Datei angeben, wird diese Batch von NUMLIST erstellt. (Existierende Dateien werden überschrieben!) Der Batch-Dateiname muß als erster Parameter angegeben werden. Wenn Sie keine Batch-Datei angeben, wird das erste .EXE oder .COM-Programm in den folgenden Parametern stattdessen ausgeführt - mit den restlichen Parametern.

*1024-1028.5/10
muß der erste (oder, wenn eine BAT angegeben, der zweite) Parameter sein.

*
Wenn sie als erstes ein nicht-numerisches Zeichen (0-9) vor diesen Parameter setzen, können Sie ein "Platzhalter"-Zeichen für die Zahlen in den folgenden Parametern angeben. (Sonst wird standardmäßig * benutzt.)

1024-1028
Hier können sie die Reichweite der Zahlen angeben, die benutzt werden sollen. Wenn Sie nur eine Zahl benutzen wollen (ungebräuchlich), können Sie auch nur diese eine Zahl angeben. Ist die erste Zahl höher als die zweite, werden die Zahlen automatisch rückwärts zugewiesen. Die Zahlen können in jedem Zahlensystem von 2 (binär) bis 41 sein. (siehe später)

.5
Diesen Parameter können Sie weglassen. Wenn Sie ihn benutzen, geben Sie damit die Schrittweite der Zahlen an. Diese muß als positive Dezimalzahl angegeben werden. Wenn Sie eine negative Schrittweite benutzen wollen, vertauschen Sie einfach die erste und zweite Zahl. (siehe oben)

/10
Diesen Paramater können Sie weglassen. Wenn Sie ihn benutzen, geben Sie damit das Zahlensystem an, das Sie verwenden wollen. Wenn Sie ein System mit nicht-numerischen Ziffern (zum Beispiel hexadezimal) benutzen wollen, so müssen Sie ein Platzhalter-Zeichen angeben (zum Beispiel *).

Die darauf folgenden Parameter werden in die angegebene Batch-Datei geschrieben oder als Parameter für eine übergebene .COM oder .EXE Datei benutzt, die entweder im selben Verzeichnis oder im Pfad (PATH) liegt. Die "Platzhalter" Zeichen in den Parametern werden durch die angegebenen Zahlen ersetzt. (Ist keiner angegeben, wird der * benutzt.) Die Anzahl dieser Platzhalter bestimmt die MINIMALE Anzahl der Ziffern, die für die zu ersetzende Zahl benutzt werden soll. Wenn die Ziffernzahl geringer ist als die Anzahl Platzhalter, werden die restlichen Ziffern mit Führungsnullen aufgefüllt. Anderenfalls, wenn die Ziffernzahl die Anzahl Platzhalter überschreitet (höher ist), wird die Zahl NICHT abgeschnitten. (Also, wenn Sie keine Führungsnullen wünschen, benutzen Sie nur jeweils EIN Platzhalter-Zeichen.)

Wenn das auszuführende Programmaus irgendwelchen Gründen nicht funktioniert / nicht gefunden wird, wird stattdessen eine Batch-Datei namens NUMLIST$.BAT mit den gegebenen Parametern erstellt.

----------------------------

OK, hoffe, es erfüllt den Zweck.
Bis bald.
frank9652
Norton Commander
Beiträge: 142
Registriert: Di 27. Mär 2007, 13:03
Wohnort: Göppingen

Beitrag von frank9652 »

Was soll ich sagen? - ICH BIN ÜBERWÄLTIGT !!!
Das meine ich wirklich ernst !!!
Ich hätte nicht gewußt, wie ich das hätte lösen sollen.
Wie es jetzt funktioniert, damit bin ich sehr zufrieden, es enthält aber noch einen Schönheitsfehler.

Zum Verständnis:
Ich schaue mir per Thumpnail-Bildern die Bilder auf SD-Karte an, und kopiere nur die Bilder nach C:\BILDER1, die gedreht werden müssen.
-In diesem Beispiel die drei Bilder PICT1508.JPG, PICT1518.JPG und PICT1526.JPG
Die Bildnummern sind nicht fortlaufend, weil ich auch mal Bilder direkt in der Kamera im nachhinein lösche, und nicht jedes Bild im Hochformat photographiert wurde.

Nun rufe ich NUMLIST mit folgendem Befehl auf:

NUMLIST NUM.BAT *1508-1526 C:\DOSTOOLS\JPEG\JPEGTRAN.EXE -ROTATE 90 C:\BILDER1\PICT****.JPG C:\BILDER2\PICT****.JPG

Es wird eine Batch für 19 Bilder PICT1508.JPG bis PICT1526.JPG erstellt, obwohl nur 3 Bilder zu konvertieren sind.

Das Gute dabei ist, daß JPEGTRAN dann einfach weitermacht, und nur die Bilder konvertiert die es auch findet.

-Mit dem kleinen Manko kann ich leben.

Besser (für eine evtl. zukünftige Version) wäre es, wenn die Bilder nicht stur durchnumeriert werden würden, sondern wenn sich NUMLIST die Bildernamen direkt selber aus dem Verzeichnis holen würde, das man an NUMLIST übergibt.

Ansonsten wirklich SUPER !!! Vielen herzlichen Dank dafür.

Eine direkte Übergabe an PV möchte (brauche) ich nicht, da das alles in eine Über-Batch eingebunden werden soll.

Ich stelle mir das so vor:
Ich kopiere alle Bilder von SD-Karte in das Verzeichnis C:\BILDER3
Nun verschiebe ich die Bilder, die rechts herum gedreht werden sollen nach C:\BILDER1 und die Bilder, die links herum gedreht werden sollen nach C:\BILDER2

Es werden mit NUMLIST zwei Batches erstellt, die zu einer Masterbatch zusammenkopiert werden.
Anschließend wird die Masterbatch ausgeführt, und die Bilder nach rechts- und links- gedreht und im Verzeichnis C:\BILDER3 erstellt.
Nun werden die Bilder in C:\BILDER1 und C:\BILDER2 gelöscht.
Nun muß ich nur noch mit dem DIR-Befehl auf das Verzeichnis C:\BILDER3

dir /b /o >c:\dostools\pv\batch2.txt

die Vorstufe für die Slideshow erstellen, und mit den anderen TXT-Dateien zur eigentlichen Slideshow-Datei zusammenkopieren.

Die Slideshow würde für den Toshiba Libretto CT110 wie folgt aussehen:

G:$112 (oder $128)
D:10000
PICT1507.JPG
PICT1508.JPG
PICT1510.JPG
...
Q:0

Zur Erklärung:
G:$112 setzt den Grafikmodus auf 640x480
G:$128 setzt den Grafikmodus auf 800x600
D:10000 setzt die Zeit die ein Bild stehen bleibt bis das nächste Bild angezeigt wird auf 10 Sekunden.
Q:0 Die Slideshow soll nach einem Durchlauf beendet werden.

Nun kann dann endlich PV aufgerufen werden und von PV aus die Slideshow gestartet werden.

Gruß Frank
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Beitrag von DOSferatu »

Wie gesagt, in dem Fall wäre mein Programm EX das, was Du brauchst.

EX sucht im Verzeichnis alle Files, die auf eine "Maske" passen (also mit den bekannten "Jokers" ? und *, wie in DOS).

Und führt etwas damit aus.

Das heißt, mit EX bräuchte man keine Batches... Aber es ist eben nur für eine Liste... Zu komisch, um das jetzt zu erklären. Aber ich baue einfach noch einen Parameter ein, der dann ermöglicht, bis zu 2848 Files aus einer Liste zu finden. Das wird dann so funktionieren:
Man setzt einfach den Platzhalter EINMAL an die Stelle, wo das File hin soll. Und der Parameter, der vorher die Zahlen-.Reichweite angibt, kann dann alternativ auch eben die Filemaske angeben... Eigentlich überflüssig, das zu erzählen. Ich bau es einfach, dann wirst es sehen.
Meine gebastelte File-Unit hat da auch schon ne Procedure dafür, um so Filelisten zu finden.

Wenn ich dran denke, was ich schon alles für nützliche Units gebaut hab... Ich denke, wenn heute noch jemand außer mir Pascal coden würde, könnte der sicher einiges davon ganz gut gebrauchen...

Deswegen bin ich auch immer relativ schnell mit so kleinen Tools fertig. Weil ich alles, was ich dafür brauche, in der Regel schonmal irgendwann in 'ner Unit programmert hab und das ganze Ding dann nur noch zusammenschustern muß.

Also OK. Fileliste aus Verzeichnis kommt noch rein. Dachte mir sowas schon.
Dann wird das Programm ca. 64k mehr Speicher brauchen, für die File-Liste...

OK, erstmal bis später


Es wäre dann bei Dir so:

EX C:\DOSTOOLS\JPEG\JPEGTRAN.EXE -ROTATE 90 C:\BILDER1\PICT****.JPG C:\BILDER2\PICT****.JPG
DOSferatu
DOS-Übermensch
Beiträge: 1220
Registriert: Di 25. Sep 2007, 12:05
Kontaktdaten:

Beitrag von DOSferatu »

@frank9652:

Also, die Version 0.02 von NUM-LIST ist jetzt online auf meiner Seite.
Der Listen-Modus ist eingebaut.
Benutzung: Statt des Zahlen-Reichweite-Parameters ist einfach ein Parameter zu verwenden, der als erstes Zeichen ein & hat. Der Parameter selbst ist eine "Filemaske", also z.B. so etwas wie FILE*.JPG.

An die Stellen, wo die Files eingefügt werden sollen, sind die Parameter &1 und/oder &2 einzufügen.

Für Dich wäre das dann z.B.:

NUMLIST BATNAME.BAT &PICT*.JPG C:\DOSTOOLS\JPEG\JPEGTRAN.EXE -ROTATE 90 C:\BILDER1\&1 C:\BILDER2\&2

Eigentlich kann man auch nur immer &1 oder nur &2 nehmen. Überall, wo &1 oder &2 steht, wird der Filename ersetzt.

Daß ich zwei solche Platzhalter benutze, liegt daran, daß ich vielleicht noch etwas einbauen werde, um die Files umbenennen zu können und der &2-Parameter wäre dann der umbenannte.

Im Moment hab ich es so eingestellt, daß man maximal 1000 Files gleichzeitig benutzen kann. Ich könnte es ohne Aufwand auf 2848 erhöhen und mit geringfügigem Aufwand auf 5957.
Ich habe deshalb nur 1000 genommen, damit die EXE nicht so viel Speicher verbraucht, damit auch der Executable-Modus noch ausführbar ist (also genügend Restspeicher für das ausführende Programm übrigbleibt).
frank9652
Norton Commander
Beiträge: 142
Registriert: Di 27. Mär 2007, 13:03
Wohnort: Göppingen

Beitrag von frank9652 »

Hallo DOSferatu!

Erst einmal recht herzlichen Dank, werde aber wahrscheinlich erst nach dem 08.12. zum Testen kommen.
Hatte letzte Woche frei und fast nur offline gearbeitet.
Habe ab heute 7 Tage Frühschicht - aber da ist bei uns tags über immer die Hölle los, werde nicht zum Testen kommen.
...ich melde mich aber wieder mit dem Ergebnis.

Gruß Frank
frank9652
Norton Commander
Beiträge: 142
Registriert: Di 27. Mär 2007, 13:03
Wohnort: Göppingen

Beitrag von frank9652 »

Hallo DOSferatu!
Frohes neues Jahr dir.

Hat doch ein wenig länger gedauert als ich dachte.
Habe die neue Version getestet, funktioniert prima.
Ich mußte nur ein wenig an den Pfaden ändern, damit es passt.
Noch einmal ganz recht herzlichen Dank für deine Hilfe.

Code: Alles auswählen

CD C:\BILDER1
C:\DOSTOOLS\NUMLIST\NUMLIST.EXE C:\DOSTOOLS\BATCH\NUM1.BAT &PICT*.JPG C:\DOSTOOLS\JPEG\JPEGTRAN.EXE -ROTATE 90 C:\BILDER1\&1 C:\BILDER3\&2

CD C:\BILDER2
C:\DOSTOOLS\NUMLIST\NUMLIST.EXE C:\DOSTOOLS\BATCH\NUM2.BAT &PICT*.JPG C:\DOSTOOLS\JPEG\JPEGTRAN.EXE -ROTATE 270 C:\BILDER2\&1 C:\BILDER3\&2
Beide Aufrufe erstellen eine Batchdatei NUM1.BAT und NUM2.BAT im Verzeichnis C:\DOSTOOLS\BATCH.
NUM1.Bat enthält den Befehl, um die Bilder im Verzeichnis C:\BILDER1 rechts herum zu drehen, und NUM2.BAT enthält den Befehl, um die Bilder im Verzeichnis C:\BILDER2 links herum zu drehen.
Die gedrehten Bilder werden gleich nach C:\BILDER3 verschoben.

Der Inhalt von NUM1.BAT sieht dann bei einem Bild wie folgt aus:

Code: Alles auswählen

C:\DOSTOOLS\JPEG\JPEGTRAN.EXE -ROTATE 90 C:\BILDER1\PICT4077.JPG C:\BILDER3\PICT4077.JPG
Der Inhalt von NUM2.BAT ist ähnlich nur mit dem Rotationsfaktor 270 und anderen Bildernamen.

Gruß Frank
Brueggi

Beitrag von Brueggi »

Hi. Weiss nicht, obs hier her passt: Falls jemand einen simplen "BAT-Maker" sucht, ich hab für Win 3.x den "BatchCreator" geschrieben. Der erstellt aus einer File-Maske eine BAT-Datei. Die Kommandozeile(n) kann man frei definieren und mit diversen Platzhaltern ausstatten, die das Progrmm dann ersetzt.
frank9652
Norton Commander
Beiträge: 142
Registriert: Di 27. Mär 2007, 13:03
Wohnort: Göppingen

Beitrag von frank9652 »

...wer noch Win 3.1 hat, für den wäre es evtl. was.

Der Vorteil von DOSferatu's Programm ist halt, daß es unter DOS funktioniert und man deshalb kein Windows benötigt.
Diese Lösung ist für mich ideal, weil ich im November das Win98 von der Platte geputzt habe.

Ich hatte ein Jahr zuvor die 4 GByte-Festplatte gegen eine 2 GByte CF-Karte ausgetauscht. Dadurch stieg der Akkubetrieb von 3 Stunden auf 4,5 Stunden an. Der Nachteil war, daß der Speicherplatz eng wurde.
Nachdem ich jetzt für alle Schnittstellen DOS-Treiber gefunden hatte (wobei Win98 am Ende nur noch zum durchschleifen der Schnittstellen fungierte), habe ich jetzt Win98 in die ewigen Jagdgründe geschickt, und wieder 900 MByte mehr frei. :-D :-D :-D
Gruß Frank
Benutzeravatar
kpanic
EDLIN-Benutzer
Beiträge: 116
Registriert: Mo 27. Sep 2010, 11:07
Wohnort: Süd-Südbaden
Kontaktdaten:

Re: ASCII Spaltenweise bearbeiten

Beitrag von kpanic »

Ich betätige mich mal wieder als Leichenfledderer...
frank9652 hat geschrieben:Um die Bilder drehen zu können, will ich daraus eine Batch machen, dessen Zeilen so aussehen:

jpegtran -rotate 90 c:\bilder1\pict1534.jpg c:\bilder2\pict1534.jpg
jpegtran -rotate 90 c:\bilder1\pict1535.jpg c:\bilder2\pict1535.jpg
jpegtran -rotate 90 c:\bilder1\pict1536.jpg c:\bilder2\pict1536.jpg

Ich kann mir nicht vorstellen, daß man so etwas mit dem COPY-Befehl hinbekommen würde.
Dochdoch, das funktioniert problemlos in einer Batch-Datei (Eigentlich sogar ohne, direkt am Prompt...)

Code: Alles auswählen

c:
cd \bilder1\
for %%x in (*.jpg) do jpegtran -rotate 90 c:\bilder1\%%x c:\bilder2\%%x
Führt in einer Schleife für jede gefundene .jpg-Datei den jpegtran-Befehl aus.
Wenn du den Befehl direkt eingeben möchtest (also nicht in einer Batch-Datei), musst du die doppelten %% durch einfache % ersetzen.
frank9652
Norton Commander
Beiträge: 142
Registriert: Di 27. Mär 2007, 13:03
Wohnort: Göppingen

Re: ASCII Spaltenweise bearbeiten

Beitrag von frank9652 »

Danke für den Tipp.

Gruß Frank
Antworten