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

Per Batch in ein Textdokument schreiben

Frage Entwicklung Batch & Shell

Mitglied: Arthuro

Arthuro (Level 1) - Jetzt verbinden

14.08.2008, aktualisiert 15:35 Uhr, 5379 Aufrufe, 23 Kommentare

Guten Tag,

Ich habe eine Test1.bat
dort steht drine:

@echo off

@echo Bitte geben Sie den SourceNamen ein?
%test%

LogParser file:Query.sql -xsllink:Table.xsl
start Output.xml

PAUSE

Nun habe ich außerdem eine Query.sql die aufgerufen wird:

SELECT SourceName ,
Message,
COUNT(*) as Total
FROM System
TO Output.xml
WHERE EventTypeName='Error event'AND SourceName LIKE '%DCOM%' AND Message LIKE '%Fehler%'
GROUP BY SourceName, Message
ORDER by Total DESC

Ich möchte jetzt in der BatchDatei den SourceNamen eingeben: zb. "Auto". Dies soll dann in die Query.sql geschrieben werden und dort wo jetzt %DCOM% steht reingeschrieben werden! Weiß jemand wie das geht ? Und könnte mir behilflich sein dabei.

Dankeschön

Gruß Arthuro
Mitglied: bastla
14.08.2008 um 11:21 Uhr
Hallo Arthuro und willkommen im Forum!

Sofern es nicht schon genügt, eine Eingabe der Art
01.
set /p "DCOM=Bitte geben Sie den SourceNamen ein: "
zu verwenden, um der Variablen %DCOM% einen Wert (welcher dann in der Abfrage automatisch für %DCOM% eingesetzt wird) zuzuweisen, gäbe es folgende einfache Variante:
Erzeuge die Dateien "D:\SQL1.txt", Inhalt:
01.
SELECT SourceName , 
02.
Message, 
03.
COUNT(*) as Total 
04.
FROM System 
05.
TO Output.xml
und "D:\SQL2.txt" mit
01.
GROUP BY SourceName, Message 
02.
ORDER by Total DESC
Daraus und aus der einen benötigten zusätzlichen Zeile lässt sich dann die "Query.sql" kombinieren:
01.
@echo off & setlocal 
02.
set "SQL=D:\Query.sql" 
03.
set /p "DCOM=Bitte geben Sie den SourceNamen ein: " 
04.
> "%SQL%" type D:\SQL1.txt 
05.
>>"%SQL%" echo WHERE EventTypeName='Error event'AND SourceName LIKE '%DCOM%' AND Message LIKE '%%Fehler%%' 
06.
>>"%SQL%" type D:\SQL2.txt
Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 12:22 Uhr
Vielen Dank

Mit DCOM klappt das schon wunderbar, aber leider klappt das mit dem zweiten Wert nicht ? Warum ?



@echo off

set /p "DCOM=Bitte geben Sie den SourceNamen ein: "
set /p "Fehler=Bitte geben Sie den Message ein: "

LogParser file:Query.sql -xsllink:Table.xsl
start Output.xml

PAUSE

Bitte warten ..
Mitglied: bastla
14.08.2008 um 12:28 Uhr
Hallo Arthuro!

Ich nehme an, Du beziehst Dich auf Variante 2 (das "Puzzle" ,-)) - Da Du nur DCOM erwähnt hattest, wird %Fehler% nicht "aufgelöst" (durch einen Variableninhalt ersetzt), sondern als "%Fehler%" in die neue Datei geschrieben. Du kannst das aber leicht ändern, indem Du anstelle der doppelten "%"-Zeichen in Zeile 5 (um "Fehler" herum) einfache machst ...

Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 12:31 Uhr
Nein habe variante 1 Probiert, dort klappt es nur mit DCOM leider nicht mit Fehler und auch nicht mit %Fehler%.

Wenn ich jetzt Varainte 2 anwenden würde, wo müsste ich den das Fehler noch hinsetzen ? Hab das mit dem %SQL% da noch net ganz verstanden, wenn du mir das noch in den obigen Code reinmachen könntest, wäre das super.

Vielen Dank im voraus.

Gruß Arthuro
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 12:43 Uhr
Bin jetzt ganz verwirrt,

in der Test1.bat steht das:
@echo off

set "SQL=D:\Query.sql"
set /p "DCOM=Bitte geben Sie den SourceNamen ein: "
set /p "Fehler=Bitte geben Sie den SourceNamen ein: "
"%SQL%" type D:\SQL1.txt
>>"%SQL%" echo WHERE EventTypeName='Error event'AND SourceName LIKE '%DCOM%' AND Message LIKE '%Fehler%'
>>"%SQL%" type D:\SQL2.txt

LogParser file:Query.sql -xsllink:Table.xsl
start Output.xml

PAUSE

----------SQL1.txt----------------------
SELECT SourceName ,
Message,
COUNT(*) as Total
FROM System
TO Output.xml
---------SQL2.txt-----------------------
GROUP BY SourceName, Message
ORDER by Total DESC
----------Query.sql---------------------
Was kommt den jetzt hier rein ?

Danke im Voraus.

Gruß Arthuro
Bitte warten ..
Mitglied: bastla
14.08.2008 um 12:45 Uhr
Hallo Arthuro!

Eigentlich sehe ich keinen Grund, warum %Fehler% (wenn die Schreibweise in der "set"-Anweisung und in der "Query.sql", und so scheint es, exakt gleich ist) nicht ebenso wie %DCOM% übernommen wird ...
---
Variante 2 mit Übergabe von %Fehler%:
01.
@echo off & setlocal 
02.
set "SQL=Query.sql" 
03.
 
04.
set /p "DCOM=Bitte geben Sie den SourceNamen ein: " 
05.
set /p "Fehler=Bitte geben Sie den Message ein: " 
06.
 
07.
> "%SQL%" type SQL1.txt 
08.
>>"%SQL%" echo WHERE EventTypeName='Error event'AND SourceName LIKE '%DCOM%' AND Message LIKE '%Fehler%' 
09.
>>"%SQL%" type SQL2.txt 
10.
 
11.
LogParser file:%SQL% -xsllink:Table.xsl 
12.
start Output.xml 
13.
 
14.
PAUSE
Da Du offensichtlich alle Dateien im aktuellen Verzeichnis hast (auch die SQL1.txt und SQL2.txt müssen dann da hin), können die Pfadangaben (in meinem Beispiel oben jeweils "D:\") entfallen.

Grüße
bastla

[Edit] Zu Deinem letzten Posting (hat sich überschnitten):
----------Query.sql---------------------
Was kommt den jetzt hier rein ?
Die "Query.sql" wird vom Batch erzeugt, allerdings mit Pfadangabe - ist aber hier oberhalb schon geändert. [/Edit]
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 12:57 Uhr
Ich bekomme eine Fehler meldung wenn ich das wie oben mache:

http://img151.imageshack.us/img151/3392/testrb2.jpg
Bitte warten ..
Mitglied: bastla
14.08.2008 um 13:09 Uhr
Hallo Arthuro!

Ändere einmal in der ersten Zeile das "echo off" auf "echo on" und sieh Dir den Ablauf an - damit lassen sich dann die Fehlermeldungen leichter zuordnen ...

Das Problem wird vermutlich sein, dass nicht alle Dateien im Ordner, von dem aus Du den Batch startest, liegen. Abhilfe könntest Du zB mit einem
01.
cd /d "D:\Der Ordner mit allen Dateien"
als Zeile 2 schaffen.

Wie sieht denn übrigens die "Query.sql" aus?

Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 13:34 Uhr
Alle Dateien liegen in einem Ordner, hat alle schon seine richtigkeit:

http://www.imgbox.de/?img=i27096z70.jpg
Bitte warten ..
Mitglied: bastla
14.08.2008 um 14:11 Uhr
Hallo Arthuro!

Alle Dateien liegen in einem Ordner
Leider nein - die "SQL1.txt" und "SQL2.txt" werden nicht gefunden, und deren Inhalte fehlen daher auch in der "Query.sql". Entweder legst Du diese Dateien ebenfalls in den entsprechenden Ordner ("C:\Programme\Log Parser 2.2"), oder Du verwendest eine Pfadangabe, zB
01.
> "%SQL%" type "D:\Der Pfad zur\SQL1.txt"
Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 14:15 Uhr
Die Dateien liegen wirklich alle in einem Ordner, außerdem habe ich das jetzt mit dem Pfad gemacht, kommt trotzdem gleicher Fehler.

Er schreibt ja schließlich das was ich eingebe in die Query.sql, aber mehr passiert leider nicht
Bitte warten ..
Mitglied: bastla
14.08.2008 um 14:27 Uhr
Hallo Arthuro!

Verwende bitte folgenden Batch:
01.
@echo off & setlocal 
02.
 
03.
set /p "DCOM=Bitte geben Sie den SourceNamen ein: " 
04.
set /p "Fehler=Bitte geben Sie den Message ein: " 
05.
 
06.
@echo on 
07.
set "SQL=Query.sql" 
08.
 
09.
> "%SQL%" type SQL1.txt 
10.
>>"%SQL%" echo WHERE EventTypeName='Error event'AND SourceName LIKE '%DCOM%' AND Message LIKE '%Fehler%' 
11.
>>"%SQL%" type SQL2.txt 
12.
 
13.
LogParser file:%SQL% -xsllink:Table.xsl 
14.
start Output.xml 
15.
 
16.
@echo off 
17.
echo ##################### 
18.
dir 
19.
echo ##################### 
20.
type "%SQL%" 
21.
echo #####################
und starte ihn mit
01.
Batchname.cmd >Batchlog.txt 2>&1
Die entstehende "Batchlog.txt" enthält dann alle Ausgaben und ein Inhaltsverzeichnis des aktuellen Ordners sowie den Inhalt der "Query.sql".

Soferne keine Datenschutzgründe dagegen sprechen, könntest Du den Inhalt der "Batchlog.txt" (bitte zwischen < code> und < /code>-Tags - jeweils ohne die Leerzeichen - stellen) posten.

Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 14:33 Uhr
In der Batchlog steht nur " Bitte geben Sie den SourceNamen ein: "

Habe die Batch oben wie beschrieben genommen habe aber
01.
Batchname.bat > Batchlog.txt 2>&1 
und nicht Batchname.cmd

Aber es funktioniert immer noch nicht
Bitte warten ..
Mitglied: bastla
14.08.2008 um 14:37 Uhr
Hallo Arthuro!

Die beiden Eingaben musst Du "blind" machen ...

Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 14:40 Uhr
Wie meinst du das Blind ? Bitte nochmal für einen Newbie erklären *G*
Bitte warten ..
Mitglied: bastla
14.08.2008 um 14:44 Uhr
Hallo Arthuro!

Da die Bildschirmausgaben alle in die Logdatei geschrieben werden, kannst Du die Aufforderung zur Eingabe nicht sehen, sie ist aber da - daher:
Nach dem Starten des Batches die erste Eingabe (zB "DCOM") eintippen und mit der Eingabetaste abschließen, dann die zweite Eingabe ("Test") eintippen und ebenfalls mit der Eingabetaste abschließen.

Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 14:49 Uhr
So einen fehler habe ich schon wegemacht mein fehler war das die SQL1.txt den Namen SQL1.txt hatte und nicht SQL1 weils schon eine txt ist.

Nun findet er die dateien auch, oh mann mich im arsch tritt.

Jetzt kommt aber nach der Zeile
LogParser file:Query.sql -xsllink:Table.xsl

Error: Syntax Error: extra token(s) after Query: 'EventTypeName= 'Error'

Der fehler liegt wohl in der Query:
TO Output.xmlWHERE EventTypeName='Error event'AND SourceName LIKE 'DCOM' AND Message LIKE ''

Output.xml wird mit der WHERE Anweisung zusammengeschrieben! Wie unterbinde ich das ?
Bitte warten ..
Mitglied: bastla
14.08.2008 um 14:54 Uhr
Hallo Arthuro!

Es sieht so aus, als wäre vor "AND" in der "echo"-Zeile kein Leerzeichen ...

Output.xml wird mit der WHERE Anweisung zusammengeschrieben! Wie unterbinde ich das ?
Durch eine zusätzliche Zeilenschaltung am Ende der Datei "SQL1.txt" (in der Datei).

Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 14:58 Uhr
Habe ich gemacht trotzdem gleicher fehler.

Gruß Arthuro
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 15:11 Uhr
PS: Scheint jetzt zu gehen mit noch ein paar kleinen bugs, da muss ich mal schaun ich danke dir aber bis dahin.

Gruß Arthuro
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 15:17 Uhr
So hab das jetzt soweit zum laufen gekriegt, er führt das ganze jetzt ohne Fehler aus nur am schluss kommt Output.xml konnte nicht gefunden werden in einem Fenster, das problem ist das aber das LogParser das erstellt also müsste es kommen weil das programm mach eigentlich was es machen soll, bloß es kommt immer diese Fehlermeldung ?

Weiß du vielleicht warum ? Muss ich irgendwas anders setzen ?

Ich könnte mir vorstellen das der fehler darin liegt das, die % Zeichen Fehlen bei der Where anweisung wenn der das in die Query schreibt ?!?

EDIT: Ist trotzdem nicht die lösung, habs so gemacht aber leider immer noch das gleiche irgendwie läuft er alle schritte durch aber erstellt keine Output.xml dies muss er aber machen um die dann anzuzeigen.
Bitte warten ..
Mitglied: bastla
14.08.2008 um 15:21 Uhr
Hallo Arthuro!

Einmal mehr die Frage nach dem Pfad - wo liegt die "Output.xml"? Den kompletten Pfad kannst Du in der entsprechenden Zeile angeben, also etwa:
01.
start "Ergebnis" "C:\Programme\Logparser 2.2\Output.xml"
Grüße
bastla
Bitte warten ..
Mitglied: Arthuro
14.08.2008 um 15:35 Uhr
Es lag hier dran: LogParser file:Query.sql -xsllink:Table.xsl

habe dort Query.sql reingemacht anstatt %SQL%

Jetzt läufts.

Gruß Arthuro

PS: Vielen Dank für deine Zeit und Mühe.
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-bei set in der Mitte schreiben? (5)

Frage von Jonas1806 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...