![]() |
Batch-File zur Konvertierung,Dateiendung im Parameter ändern
Hallo,
ich möchte mit einem kleinen Batch-File (Stapelverarbeitungsdatei, *.bat) eine Konvertierung durchführen. Dazu möchte ich den übergebenen Dateienamen (Parameter wird durch Drag-and-Drop auf Batch-File übergeben) einem Programm übergeben. Das Programm macht z.B. aus text.tex -> text.dvi . Im nächsten Schritt möchte ich text.dvi an ein anderes Programm übergeben. Dazu muss ich von dem Parameter die Endung abschneiden und eine neue anfügen.
Code:
Ich hoffe, ich konnte meine Frage verständlich ausdrücken. Habe jetzt schon ziemlich lange gegooglet, aber bisher nichts entsprechendes gefunden.
verarbeitung1.exe %1 // (%1 ist der übergebene Parameter) aus z.B. %1 = "d:\text.tex"; dann wird aus text.tex text.dvi
verarbeitung2.exe ???%1??? // %1.div wäre ja falsch, weil %1.div = "d:\text.tex".div wäre (Anführungszeichen beachten!) Gruß Ben |
Re: Batch-File zur Konvertierung,Dateiendung im Parameter än
Hallo Ben,
versuche es so:
Code:
Grüße vom marabu
@for %I in (%1) do echo %~dpnI.dvi
|
Re: Batch-File zur Konvertierung,Dateiendung im Parameter än
Hallo marabu,
danke. Ganz so hat es nicht geklappt, aber das hat mich entscheidend weitergebracht. Jetzt funktioniert es, wie es soll:
Code:
(...) steht für weitere Parameter.
: prüfen, ob ein Parameter übergeben wird
if %1!==! goto ende : aktuelles Laufwerk wechseln %~d1 : aktuellen Pfad wechseln cd "%~dp1" : tex2dvi latex.exe (...) "%~nx1" : dvi2ps dvips.exe (...) "%~n1.dvi" :ende Gruß Ben |
Re: Batch-File zur Konvertierung,Dateiendung im Parameter än
Hallo Achim,
Zitat:
In einer Batchdatei müssen aber die Prozentzeichen vor den Variablen der for-Schleife verdoppelt werden. Korrekt wäre also
Code:
jkr
@for %%I in (%1) do echo %%~dpnI.dvi
|
Re: Batch-File zur Konvertierung,Dateiendung im Parameter än
Hallo Jürgen,
vielen Dank für deinen Hinweis. Wer sich mit der command shell beschäftigt, der wird feststellen, dass es da unterschiedliche Syntaxregeln bezüglich Variablen gibt: Doppeltes Prozentzeichen vor Steuervariablen im batch mode und einfaches im interaktiven Modus. Umgebungsvariablen müssen stets in Prozentzeichen eingeschlossen werden (%PATH%) und Parameter werden auch im Batch nur durch ein einzelnes Prozentzeichen vor der Parameternummer (%2) referenziert. Wie immer hilft ein Blick in die Online Hilfe (CMD /? oder auch FOR /?) bevor man irgendetwas abtippt und sich wundert. Ben hatte offensichtlich kein Problem mit der Syntax. Freundliche Grüße |
Re: Batch-File zur Konvertierung,Dateiendung im Parameter än
Danke
Ich habe es jetzt korrigiert:
Code:
Gruß
@for %%I in (%1) do %%~dI
: prüfen, ob ein Parameter übergeben wird if %1!==! goto ende : aktuelles Laufwerk wechseln @for %%I in (%1) do %%~dI : aktuellen Pfad wechseln @for %%I in (%1) do cd "%%~dpI" : tex2dvi @for %%I in (%1) do C:\texmf\MiKTeX\bin\latex.exe --src -interaction=nonstopmode -max-print-line=120 "%%~nxI" : dvi2ps @for %%I in (%1) do C:\texmf\MiKTeX\bin\dvips.exe -P pdf "%%~nI.dvi" : ps2pdf @for %%I in (%1) do C:\Programme\gs\gs\gs8.54\bin\gswin32c.exe -sPAPERSIZE=a4 -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile="%%~nI.pdf" -c save pop -f "%%~nI.ps" pause :ende Ben |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz