4352812247
Goto Top

Nach Wort suchen und Programm wieder ausführen

Hallo zusammen, ich bräuchte hilfe bei meinem .bat file:

Ich führe LaTeX aus:
lualatex -jobname=test document.tex > dokumentation.txt
set "search=LaTeX Warning: Label(s)"

Ich hätte gerne eine Möglichkeit, wie das Programm nach laufen des LaTeX-Befehls, die dokumentation.txt überprüft ob die LaTeX Warning: Label(s) ... enthalten ist.
Falls ja, soll der selbe LaTeX-Befehl nochmal laufen.


Vielen Dank schon mal face-smile

Content-ID: 4415332804

Url: https://administrator.de/contentid/4415332804

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

4400667902
4400667902 27.10.2022 aktualisiert um 10:10:06 Uhr
Goto Top
Moin.
find oder findstr ist dein Freund wenn man immer noch mit Batch rum eiert
findstr /ilc:"LaTeX Warning: Label(s)" document.tex >nul 2>&1 && (  
    echo Do here something if found
) else (
    echo not found
)
U.
4352812247
4352812247 27.10.2022 um 12:53:39 Uhr
Goto Top
Zitat von @4400667902:

Moin.
find oder findstr ist dein Freund wenn man immer noch mit Batch rum eiert
findstr /ilc:"LaTeX Warning: Label(s)" document.tex >nul 2>&1 && (  
    echo Do here something if found
) else (
    echo not found
)

Hi nochmal, danke für die Nachricht.
Ich komme trotzdem nicht weiter...

Mein Code:
lualatex -jobname=test document.tex > dokumentation.txt
set "search=LaTeX Warning: Label(s)"  
set "datei="%~dp0\dokumentation.txt"  
findstr /ilc: "%search%" "%datei%" >nul 2>&1 && (echo do lualatex -jobname=test document.tex > dokumentation.txt )   
DanielB80
DanielB80 28.10.2022 aktualisiert um 08:45:26 Uhr
Goto Top
"Echo" gibt einfach einen Text aus (ähnlich wie "Print"), das solltest Du weglassen. Und "do" auch.

Ukulele war schneller face-wink...

Am Besten wird es vermutlich funktionieren, wenn Du eine "Schleife" einbaust. Folgendes Info habe ich gefunden:

In einer Batch gibt es eine einfache Möglichkeit eine primitive "Schleife" zu bauen mittels Label und Goto, dazwischen die Befehle und natürlich die Abbruchmöglichkeit.

:Label
Befehl 1

Befehl 2

Befehl n

If ......... goto end

goto label

:end

Das müsstest Du natürlich umbauen,
so dass in der Klammer das Goto steht,
das dann Deine Batch von vorne / "oben" neu startet.



Verstehst Du, was ich meine?
Hilft das weiter?
4400667902
4400667902 28.10.2022 aktualisiert um 08:39:54 Uhr
Goto Top
Ich komme trotzdem nicht weiter...
War ja wieder klar ...
@echo off
set "search=LaTeX Warning: Label(s)"  
set "datei=%~dp0dokumentation.txt"  
:loop
lualatex -jobname=test document.tex >"%datei%"  
findstr /ilc:"%search%" "%datei%" >nul 2>&1 && goto :loop