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 Mar 30, 2010 um 13: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-Key: 128247

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

Printed on: April 18, 2024 at 19:04 o'clock

Member: Snowman25
Snowman25 Oct 29, 2009 at 15:51:53 (UTC)
Goto Top
wie siehts ohne das leerzeichen vor dem kleinerals-zeichen aus?
Member: tkbeat
tkbeat Oct 29, 2009 at 16:12:07 (UTC)
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
Member: tkbeat
tkbeat Oct 29, 2009 at 16:16:31 (UTC)
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
Member: bastla
bastla Oct 29, 2009 at 17:03:28 (UTC)
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
Member: Biber
Biber Oct 29, 2009 at 17:38:32 (UTC)
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
Member: bastla
bastla Oct 29, 2009 at 17:51:01 (UTC)
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
Member: Biber
Biber Oct 29, 2009 at 17:59:07 (UTC)
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
Member: Biber
Biber Nov 08, 2009 at 17:54:26 (UTC)
Goto Top
Moin tkbeat,

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

Grüße
Biber
Member: tkbeat
tkbeat Nov 09, 2009 at 09:28:21 (UTC)
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
Member: bastla
bastla Nov 09, 2009 at 10:39:21 (UTC)
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
Member: tkbeat
tkbeat Nov 09, 2009 at 10:44:28 (UTC)
Goto Top
Leider ist es nicht machbar den mysql Login mit in die sql Datei zu geben .
Member: bastla
bastla Nov 09, 2009, updated at Oct 18, 2012 at 16:39:53 (UTC)
Goto Top
Hallo tkbeat!

Das war mein Kommentar ...

Grüße
bastla
Member: tkbeat
tkbeat Nov 09, 2009 at 16:38:03 (UTC)
Goto Top
Beim Versuch das < Zeichen mit ^< zu maskieren bricht mir mysql wiederum mit dem Hinweis auf die Usage: ab .
Member: Biber
Biber Nov 09, 2009 at 18:02:25 (UTC)
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