tkbeat
Goto Top

Fehler in Batchdatei

Hallo ,

folgendes Problem :

Ich habe eine Batchdatei in der das Laufwerk ausgelesen wird von dem die Datei gestartet wird :

set startLW=%~d0

danach wird die Variable einige Male verwendet ohne Probleme .
An Einer stelle jedoch sieht die Batchdatei so aus :


C:\apachefriends\xampp\mysql\bin\mysql.exe -uuser-ppasswort caodb < %startlw%\vstc10\vstc10_price_selection.sql

jedoch bei der Ausfuehrung so :

E:\vstc10>C:\apachefriends\xampp\mysql\bin\mysql.exe -uuser -ppasswort caodb 0<E:\vstc10\vstc10_price_selection.sql

was mysql natuerlich nicht versteht und mit einer fehlermeldung abbricht .


Wie kommt diese 0 vor das < Zeichen ?

Ich hatte schon Probleme bei der Kodierung vermutet und alles in eine Textverarbeitung kopiert und als Unicode abgespeichert.


habt ihr eine Idee ?

viele Gruesse
tkbeat
Kommentar vom Moderator Biber am 30.03.2010 um 15:19:28 Uhr
Laut PN-Nachfrage ist das hat sich das Problem mittlerweile in Wohlgefallen aufgelöst - der Dump war fehlerhaft und das "Wie kommt diese 0 vor das < Zeichen ?" war eine nicht-relevante Frage (hat nichts mit dem Fehler zu tun und macht nix).
Beitrag heute auf gelöst und geschlossen gesetzt.

Content-ID: 128247

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

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Snowman25
Snowman25 29.10.2009 um 16:51:53 Uhr
Goto Top
wie siehts ohne das leerzeichen vor dem kleinerals-zeichen aus?
tkbeat
tkbeat 29.10.2009 um 17:12:07 Uhr
Goto Top
nein , ist unveraendert so

etwas spaeter in der gleichen batch wird die variable am begin einer zeile verwendet und hier ist die ausgabe wieder korrekt ... es geht also nur an dieser einen stelle nicht

sehr merkwuerdig
tkbeat
tkbeat 29.10.2009 um 17:16:31 Uhr
Goto Top
es hat etwas mit dem < zu tun ... lasse ich dies weg (was natuerlich mysql syntaktisch auch nicht funktioniert) dann wird die variable normal wie ueberall anders in der batch auch ausgegeben
bastla
bastla 29.10.2009 um 18:03:28 Uhr
Goto Top
Hallo tkbeat!

"<" wird als Umleitung der Eingabe interpretiert (deshalb auch die Angabe des Kanals 0 = STDIN; hat mit %0 gar nx zu tun) - mit "Maskierung" sollte es klappen:
C:\apachefriends\xampp\mysql\bin\mysql.exe -uuser-ppasswort caodb ^< %startlw%\vstc10\vstc10_price_selection.sql
Grüße
bastla
Biber
Biber 29.10.2009 um 18:38:32 Uhr
Goto Top
Moin bastla,

das kann ich mir nicht vorstellen, das hier eine Maskierung nötig sein soll.

Ich frag lieber mal nach:
@tkbeat
was mysql natuerlich nicht versteht und mit einer fehlermeldung abbricht .
Mit welcher denn bitte?
BTW: Wieso stehen denn User,Password und DB nicht auch im SQL-Script?

Edit: Sonst ginge auch die Syntax:
...mysql .... -e "%start_LW%/pfad/deinesqldatei.sql"


Grüße
Biber
bastla
bastla 29.10.2009 um 18:51:01 Uhr
Goto Top
@Biber
das kann ich mir nicht vorstellen, das hier eine Maskierung nötig sein soll.
Wenn doch die "0" weg soll ... face-wink

Aber Du hast sicherlich Recht (und ich sollte das "Zwischendurch-Posten" sein lassen).

Grüße
bastla
Biber
Biber 29.10.2009 um 18:59:07 Uhr
Goto Top
Moin bastla,

gegen die Anzeige der "0" würde ja auch ein einfaches "@echo off" helfen face-wink

Nein, ich meinte ja nur, dass mySQL sich vielleicht etwas mädchenhaft anstellen könnte
wegen des fehlenden Leerzeichens zwischen user und Passwort ("-uuser-ppasswort") und wollte deshalb erstmal die Fehlermeldung abwarten.

Grüße
Biber
Biber
Biber 08.11.2009 um 18:54:26 Uhr
Goto Top
Moin tkbeat,

Rückfrage:
Gibt es denn irgendwelche Fortschritte bei deiner Lösungssuche?

Grüße
Biber
tkbeat
tkbeat 09.11.2009 um 10:28:21 Uhr
Goto Top
Hallo Biber,

Ich verwende echo off . Dadurch seh ich zwar ein paar wünschenswerte Ausgaben nicht. Aber es scheint damit zu funktionieren .

Schöner wäre wenn man der Shell beibringen könnte > und < nicht zu interpretieren .

greets tkbeat
bastla
bastla 09.11.2009 um 11:39:21 Uhr
Goto Top
Hallo tkbeat!

Zu "echo off" zwingt Dich (besonders in der Testphase) ja niemand ...
Schöner wäre wenn man der Shell beibringen könnte > und < nicht zu interpretieren .
Wie das geht, solltest Du eigentlich meinem ersten Kommentar oben entnommen haben.

Grüße
bastla
tkbeat
tkbeat 09.11.2009 um 11:44:28 Uhr
Goto Top
Leider ist es nicht machbar den mysql Login mit in die sql Datei zu geben .
bastla
bastla 09.11.2009, aktualisiert am 18.10.2012 um 18:39:53 Uhr
Goto Top
Hallo tkbeat!

Das war mein Kommentar ...

Grüße
bastla
tkbeat
tkbeat 09.11.2009 um 17:38:03 Uhr
Goto Top
Beim Versuch das < Zeichen mit ^< zu maskieren bricht mir mysql wiederum mit dem Hinweis auf die Usage: ab .
Biber
Biber 09.11.2009 um 19:02:25 Uhr
Goto Top
Ich hab doch auch geschrieben, eine Maskierung ist für die Hasen.

Die Syntax "<SkriptMitSqlStatement" ist doch okay so.
Eine Alternative wäre die explizite Angabe mit "-e" (siehe oben).

Wenn weder noch klappt, dann ist das Statement selbst unvollständig.

Grüße
Biber