marcimarc85
Goto Top

Abfrage in batch- Datei automatisch mit "y" beantworten

Hallo,

Ich möchte eine Datenbankmigration über mehrere Versionen automatisieren. Dazu haben wir immer batch-Scripte laufen. Da ich bei älteren Datenbanken nun über viele Versionen gehen muss, will ich die ganzen einzelen Schritte mit einem Script aufrufen lassen. Das beinhaltet aber an einer Stelle immer eine Abfrage, die ich mit "y" beantworten muss und dann mit ENTER bestätigt werden muss.

Die batch Datei, die aufgerufen wird , stellt folgende Frage

Migrate MySQL on 127.0.0.1:3306 from 415 to 417? (y/n)

in dem Script, was ich zum Aufruf nutze habe ich das folgendermaßen gemacht:

call migrate_db.bat 127.0.0.1 3306 dbadmin password . 417

Folgendes hab ich versucht:
echo y | call migrate_db.bat 127.0.0.1 3306 dbadmin enterprise . 417
Da bekomme ich dann aber folgende Meldung

}=={y} was unexpected at this time

Mit folgendem Befehl und einer texttadei, in der "y" und eine darauffolgende Leerzeile für das ENTER steht, klappt es, aber ich möchte ungern noch ne extra Textdatei auf dem Server ligen hab, die notwendig ist, weil die früher oder später eh irgendeine Blitzbirne löscht, weil er denkt, dass gehört da nicht hin.

call migrate_db.bat 127.0.0.1 3306 dbadmin enterprise . 417 << bestaetigung.txt

Content-Key: 389518

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

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: Xerebus
Xerebus 15.10.2018 um 08:43:05 Uhr
Goto Top
In der migrate_db.bat als letzte zeile "y"?
Mitglied: Vision2015
Vision2015 15.10.2018 um 08:43:33 Uhr
Goto Top
Moin...

schon mal mit dem parameter
/Y
probiert ?

Frank
Mitglied: MarciMarc85
MarciMarc85 15.10.2018 um 08:53:21 Uhr
Goto Top
Das geht nicht. Dann müsste ich die Datei bei jedem Migrationsschritt händisch ändern, da diese in bestimmten Softwarerollouts automatisch implementiert ist
Mitglied: MarciMarc85
MarciMarc85 15.10.2018 um 08:54:08 Uhr
Goto Top
Hab ich gerade mal versucht. Das zeigt garkeinen Effekt. Die Frage nach (y/n) bleibt weiterhin bestehen
Mitglied: Snowman25
Snowman25 15.10.2018 um 11:36:16 Uhr
Goto Top
migrate_db.bat ändern? Einfach da die Abfrage rausnehmen, sodass immer der YES-Zweig verarbeitet wird.
Mitglied: KowaKowalski
KowaKowalski 15.10.2018 um 13:14:29 Uhr
Goto Top
Zitat von @MarciMarc85:
Mit folgendem Befehl und einer texttadei, in der "y" und eine darauffolgende Leerzeile für das ENTER steht, klappt es, aber ich möchte ungern noch ne extra Textdatei auf dem Server ligen hab, die notwendig ist, weil die früher oder später eh irgendeine Blitzbirne löscht, weil er denkt, dass gehört da nicht hin.


Dann gib der Datei einen sprechenden Namen.

mfg
kowa
Mitglied: NetzwerkDude
NetzwerkDude 15.10.2018 aktualisiert um 15:45:41 Uhr
Goto Top
Via Powershell die cmd starten, und per com-objekt ein "y" ans fenster schicken, wobei, weiß nicht ob es auch ohne anmeldung dann funktioniert.

#wshell com-objekt erstellen
$wshell = New-Object -ComObject wscript.shell
#skript ausführen
Start-Process cmd.exe -ArgumentList "/c migrate_db.bat 127.0.0.1 3306 dbadmin password . 417"  
$wshell.AppActivate('cmd')  
Sleep 1 
$wshell.SendKeys('y')