Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch - Keine Ausgabe

Frage Entwicklung Batch & Shell

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

13.01.2007, aktualisiert 22:55 Uhr, 7171 Aufrufe, 15 Kommentare

Guten Abend zusammen,

ich habe heute Mittag einen Batch entworfen. Dabei wird auf eine Datenbank zugegriffen! Wenn ich das SQL-Statment direkt über die Konsole absetze erscheint das richtige Ergebnis. Dann habe ich das Statment in eine FOR - Schleife eingebunden => keine Ausgabe mehr!

01.
@echo off 
02.
 
03.
FOR /f %%i IN ('mysql.exe -h s-hw01 -u root -test -D server --execute="select mac, computer from ris_mac_adressen where mac='%mac%';" -s') DO echo %%i
Komisch....Schon im vorraus, vielen Dank für euere Mühen!


Gruß
Dani
Mitglied: miniversum
13.01.2007 um 11:34 Uhr
Wie sieht das Statement auf der Konsole den aus?
Kommt keine Fehlermeldung?
Liegts vielelciht an den " in der Forschleife?

miniversum
Bitte warten ..
Mitglied: Dani
13.01.2007 um 11:44 Uhr
G' Morgen,
manchmal habe ich das Gefühl ich rede gegen eine Wand!
Aber gut...

Wie sieht das Statement auf der Konsole den aus?
Naja...genau gleich, wie es in der FOR-Schleife steht.

Kommt keine Fehlermeldung?
Nein, es erscheint keine!

Liegts vielelciht an den " in der Forschleife?
Gut möglich, weiß leider nicht, wie man diese ersetzen könnte!


Gruß
Dani
Bitte warten ..
Mitglied: miniversum
13.01.2007 um 11:49 Uhr
Und was erhällst du als Ausgabe auf der Console nur durch das Statement ohne die For-Schleife?
Ist da vielelciht am Anfang eine Leerstalle in der Ausgabe?

Ne wenn garkeine Fehlermeldung leigt es dneke ich nicht an den ".

miniversum
Bitte warten ..
Mitglied: bastla
13.01.2007 um 12:38 Uhr
Hallo Dani!

Vermutlich lilegt es nicht an den ", sondern an den ' ...

Vielleicht geht's ja so:
01.
FOR /f %%i IN ('mysql.exe -h s-hw01 -u root -test -D server --execute="select mac, computer from ris_mac_adressen where mac=^'%mac%^';" -s') DO echo %%i
Ansonsten bliebe natürlich noch der Workaround "Umleitung in eine temporäre Textdatei und zeilenweise Bearbeitung selbiger".

Grüße
bastla
Bitte warten ..
Mitglied: Dani
13.01.2007 um 12:46 Uhr
Hi,
eigentlich wollte ich das mit der File überspringen!

Also folgender Fehler erscheint:
01.
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the ma 
02.
nual that corresponds to your MySQL server version for the right syntax to use n 
03.
ear '^' 00-17-42-0D-BE-6B^'' at line 1
Dani
Bitte warten ..
Mitglied: miniversum
13.01.2007 um 12:57 Uhr
Funktioniert es den überhaubt wenn dus indirekt über eine Datei machst?

Gehts den so?:
FOR /f "delims=" %%i IN ('mysql.exe -h s-hw01 -u root -test -D server --execute="select mac, computer from ris_mac_adressen where mac='%mac%';" -s') DO echo %%i

miniversum
Bitte warten ..
Mitglied: Dani
13.01.2007 um 13:09 Uhr
Hi,
ne...bringt nix. => Keine Ausgabe!


Gruß
Dani
Bitte warten ..
Mitglied: miniversum
13.01.2007 um 13:12 Uhr
Über ne Datei gehts?
Wen nicht was steht den in der Datei dann?
also so?:
mysql.exe -h s-hw01 -u root -test -D server --execute="select mac, computer from ris_mac_adressen where mac='%mac%';" -s>Datei.txt
FOR /f "delims=" %%i IN (Datei.txt) DO echo %%i

miniversum
Bitte warten ..
Mitglied: Dani
13.01.2007 um 13:41 Uhr
Hi,
also lesen ist echt nicht deine Stärke!

Zitat:
Geschrieben von Dani am 13.01.2007 um 12:46:35 Uhr.
>Hi,
>eigentlich wollte ich das mit der File überspringen!

/Dani
Bitte warten ..
Mitglied: Dani
13.01.2007 um 13:49 Uhr
Hi,
ein UPDATE:
Also der Batch funktioniert so, wie ich ihn gepostet habe. Anscheinend sind die MAC-Adressen in der DB (also die Buchstaben klein) und wenn ich Sie von "ipconfig /all" auslese sind die Buchstaben groß.
Gibt es in SQL eine Funktion, die die Buchstaben groß bzw. klein macht?


Gruß
Dani
Bitte warten ..
Mitglied: miniversum
13.01.2007 um 13:53 Uhr
Das bezog sich doch auf die Sache mit den ' und ^'.
Meine Frage war eine andere...
Hat sich ja inzwischen auch erledigt.

miniversum
Bitte warten ..
Mitglied: bastla
13.01.2007 um 17:27 Uhr
Hallo Dani!

Vielleicht kann ich ja doch noch etwas Brauchbares beitragen: Für die Umwandlung in Kleinbuchstaben gibt es in SQL die Funktion LOWER(), analog für Großbuchstaben UPPER().

Einen Versuch wert sein könnte daher:
01.
FOR /f %%i IN ('mysql.exe -h s-hw01 -u root -test -D server --execute="select mac, computer from ris_mac_adressen where mac=lower('%mac%');" -s') DO echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: Dani
13.01.2007 um 20:59 Uhr
Hi,
wunderbar...gibt es auch eine Funktion um Leerzeichen am Anfang zu entfernen bzw. ignnorieren?!


Gruß
Dani
Bitte warten ..
Mitglied: bastla
13.01.2007 um 21:10 Uhr
Hallo Dani!

Einen hab' ich noch für heute:
01.
 ... where mac=trim(leading ' ' from lcase('%mac%')) ...
Ansonsten: MySQL String Functions

Anmerkung: "lcase" statt "lower" ist vielleicht etwas gebräuchlicher, und synonym zu verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: Dani
13.01.2007 um 22:55 Uhr
Hi,
thx...so nun klappt es auch! Schönen Sonntag wünsch ich dir.


Gruß
Dani
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch ausgabe zeilenweise stat spaltenweise ausgeben (4)

Frage von sugram zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch (Win7): Kombinierte Ausgabe mit echo? (1)

Frage von Ben.Blake.79 zum Thema Batch & Shell ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...