Batch Ausgabe mehrerer Befehlszeilen von batch an laufendes Programm

JahniS01

Cadet 1st Year
Registriert
Dez. 2017
Beiträge
11
Hallo zusammen.

Bin gerade erst dabei Batch zu erlernen und stehe schon vor dem ersten Problem...
über die Suchfunktion wurde ich leider nicht fündig.

Aufgabenstellung:
mein batch soll ein bestimmtes Programm starten -> sqlite3.exe
und in dieses laufende Programm dann der Reihe nach Befehle eingeben.

Komme einfach nicht dahinter, wie ich von meiner Batch - Befehlszeilen in das nun laufende Programm sqlite3.exe gesendet bekomme.

Bin um jeden Ansatz dankbar.

Code:
@echo off
Title SQLiteRepair

:MD
IF EXIST %userprofile%\Desktop\SQLiteRepair\*.* goto COPY
MD %userprofile%\desktop\SQLiteRepair >nul

:COPY
IF EXIST %userprofile%\Desktop\SQLiteRepair\sqlite3.exe goto SEARCHSQLITE
copy sqlite3.exe %userprofile%\desktop\SQLiteRepair >nul

:SEARCHSQLITE
IF EXIST %userprofile%\Desktop\SQLiteRepair\*.sqlite goto REPAIR
IF EXIST C:\X3000\Kasse\Fiskaltrust\Service\*.sqlite copy C:\X3000\Kasse\Fiskaltrust\Service\*.sqlite %userprofile%\Desktop\SQLiteRepair && goto REPAIR >nul

:START
cls
echo.
echo Auf Ihrem Desktop wurde ein neuer Ordner [SQLiteRepair] erstellt.
echo.
echo Bitte kopieren sie die defekte SQLite Datenbank in diesen Ordner.
echo.
echo.
echo.
echo.
pause
goto SEARCHSQLITE

:REPAIR
For /F %%i in ('dir /B %userprofile%\desktop\SQLiteRepair\*.sqlite') do set SQLiteName=%%~ni
cls
echo.
echo.
echo.
echo Datei %SQLiteName%.sqlite gefunden. Reparatur starten mit beliebiger Taste
echo.
echo.
echo.
echo.
pause >nul

sqlite3 %SQLiteName%.sqlite

REM soweit noch alles super
REM folgende echos sollen nun aber an [sqlite3 %SQLiteName%.sqlite] übergeben werden:

echo pragma integrity_check;
timeout /t 5 >nul
echo .dump | sqlite3 %SQLiteName%.sqlite > repariert.sql

:END
cls
echo.
echo.
echo Reparatur beendet
pause
exit

Schonmal Danke,
LG JahniS01
 
Das geht so nicht. Schau dir an was das Programm als Parameter erwartet. Evtl. hast du als letzten Ausweg Glück und kannst eine Datei reinpipen, dass es als Eingabe von STDIN nutzt, aber sonst ists Essig mit Eingaben.
Code:
(
echo befehl1
echo befehl2
echo befehl3
) | sqlite3.exe
 
Danke für die AW

hm.

Nach dem ersten Befehl
"pragma integrity_check;"
müsste ich auch noch das Errorlevel abfragen, wenn Fehlermeldung - SQLite3.exe beenden, sonst fortfahren mit ".dump | sqlite3 %SQLiteName%.sqlite > repariert.sql"
Die Errorlevel Abfrage habe ich nur noch nicht im Code, da ich nichtmal den ersten Befehl an SQLite3 gesendet bekomme...
 
Zurück
Oben