Anzeige:
Ergebnis 1 bis 9 von 9

Thema: [Bitte] Dos-Batch-Skript in Bash-Skript umwandeln

  1. #1
    Banned
    Registriert seit
    Nov 2004
    Beiträge
    364

    Question [Bitte] Dos-Batch-Skript in Bash-Skript umwandeln

    Skript
    for /R %i in (*.jpg) do (
    rename >nul "%i" pdm.jpg
    alchemy pdm.jpg pdm.tga -a
    rename pdm.tga "%@name["%i"].tga"
    del >nul pdm.jpg
    )
    Dieses Skript gehört zu einer Datei von Kinpin, welches man unter www.the-underdogs.org runterladen kann.
    Doch leider selbst dosbox mag dieses Skript nicht ausführen und die .jpg Dateien in .tga Dateien umwandeln. könnte mir jemand vlt. dieses Skript in ein Bash-konformes Skript umwandeln?

  2. #2
    Linux Newbie 2. Grades
    Registriert seit
    Jun 2001
    Ort
    nähe Graz
    Beiträge
    797
    Code:
    #!/bin/sh
    for i in *.jpg; do
    convert "$i" "${i/.jpg/.tga}"
    done
    Wobei ich nicht weiss ob dein Script hier nicht die Verzeichnisse Rekursiv durchgeht (wg. dem /R beim for). Hier könnte man sich aber auch ganz einfach behelfen:

    Code:
    #!/bin/sh
    for i in ${1}/*.jpg; do
    convert "$i" "${i/.jpg/.tga}"
    done
    und dieses script dann von find aufrufen lassen

    Code:
    find -type d -exec convert.sh "{}" \;
    lg, Helmut
    Bitte zuerst Handbuch, man $PROGRAMM, /usr/[local/]/share/doc/$PROGRAMM, $SUCHMASCHINE und $SUCHFUNKTION befragen.

  3. #3
    Banned
    Registriert seit
    Nov 2004
    Beiträge
    364
    danke, ich denke das sollte mir schon weiterhelfen

    Edit:
    Obwohl, eine Frage habe ich noch:

    rename pdm.tga "%@name["%i"].tga"

    Die Zeile verstehe ich nicht ganz, bzw. das @name.
    Geändert von ichunddu (31.07.05 um 10:43 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    Mar 2004
    Beiträge
    70
    Alternative:

    Code:
    #!/bin/sh
    
    for i in `find ./ -iname "*.jpg"`; do
      convert $i `echo $i | sed s/jpg/tga/I`
    done
    Hat den Vorteil, dass es Dank -iname und /I Case-Insensitiv ist (also JPG u. jpg nimmt). Dafür ist echo $i nicht sehr schön.

    mfG
    Type "cat vmlinuz > /dev/dsp" to hear the Voice of God.

  5. #5
    Linux Newbie 2. Grades
    Registriert seit
    Jun 2001
    Ort
    nähe Graz
    Beiträge
    797
    Das Problem an deiner Lösung TheReaper ist nur, dass sobald ein Dateiname ein Leerzeichen enthält es zu Problemen kommen wird. (abc def.jpg wird dann als abc und def.jpg interpretiert)

    Am schönsten wäre dann wahrscheinlich die Lösung:

    find -iname "*.jpg" -exec converter.sh "{}" \;

    converter.sh:
    Code:
    #!/bin/sh
    INPUT="$1"
    OUTPUT="`echo $INPUT | sed s/jpg/tga/I`"
    convert "$INPUT" "$OUTPUT"
    Bitte zuerst Handbuch, man $PROGRAMM, /usr/[local/]/share/doc/$PROGRAMM, $SUCHMASCHINE und $SUCHFUNKTION befragen.

  6. #6
    Registrierter Benutzer
    Registriert seit
    Mar 2004
    Beiträge
    70
    @ Henni: Stimmt, ein guter Einwand. An Groß-Kleinschreibung denk ich zwar, aber nicht an Space.
    Sollte sich aber bei meinem Versuch mit Setzen von Hochkommas bei den Argumenten von convert beheben lassen.

    mfG
    Geändert von TheReaper (31.07.05 um 11:17 Uhr)
    Type "cat vmlinuz > /dev/dsp" to hear the Voice of God.

  7. #7
    Banned
    Registriert seit
    Nov 2004
    Beiträge
    364
    rename pdm.tga "%@name["%i"].tga"

    Die Zeile verstehe ich nicht ganz, bzw. das @name.

  8. #8
    Banned
    Registriert seit
    Nov 2004
    Beiträge
    364
    lalala@home:~/Kingpin/Main$ find -type d -exec do.sh "{}" \;
    convert: unable to open image `./*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/weapons/*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/weapons/v_hmgcool/*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/weapons/sshell_md2/*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/weapons/shell_md2/*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/weapons/shella/*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/weapons/g_tomgun/*.jpg': Datei oder Verzeichnis nicht gefunden.
    convert: unable to open image `./models/weapons/g_hmg/*.jpg': Datei oder Verzeichnis nicht gefunden.
    ..........
    1234567890

  9. #9
    Linux Newbie 2. Grades
    Registriert seit
    Jun 2001
    Ort
    nähe Graz
    Beiträge
    797
    das ist egal :-)

    wenn die Ersetzung *.jpg durch $FILENAME.jpg nicht erfolgreich ist, weil er nichts findet, dann übergibt er einfach "*.jpg" (was er natürlich nicht finden kann)

    lg, Helmut
    Bitte zuerst Handbuch, man $PROGRAMM, /usr/[local/]/share/doc/$PROGRAMM, $SUCHMASCHINE und $SUCHFUNKTION befragen.

Ähnliche Themen

  1. Cooles Tool für die *Konsoleros* ;)
    Von HangLoose im Forum Neue Programme/Versionen
    Antworten: 48
    Letzter Beitrag: 20.04.04, 17:44
  2. usb-festplatten
    Von w.freudenstein im Forum Linux Allgemein
    Antworten: 11
    Letzter Beitrag: 10.02.04, 19:27
  3. need help bei linux u. 3d
    Von mexx im Forum X-Konfiguration
    Antworten: 16
    Letzter Beitrag: 24.07.03, 20:30
  4. Problem mit alsa bei der SDL-Compilierung!
    Von -Hendrik- im Forum Musik
    Antworten: 4
    Letzter Beitrag: 20.08.02, 20:10
  5. Probleme mit kwintv--Hilfeeeeeeee.....
    Von Hubidubi2001 im Forum Fernsehen
    Antworten: 10
    Letzter Beitrag: 20.05.02, 19:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •