hacks90
Goto Top

Batchfile - Allg. Informationen - Versionenunterschied durch Zeitstempel

Hallo zusammen.

Ich muss ein Batchfile zur Überwachung eines MSCS 2008 R2 erstellen.

TEXTFILE AUSGABE Cluster.txt:

AKTIVE NODE: *Computername*
Domäne: *Domäne*
Datum: *Datum*

So sollte die Ausgabe in etwa aussehen. Jedoch weiss ich nicht, wie man die Domäne heraus lesen kann. Und ich weiss nicht, ob ein Textfile überhaupt so vor "formatiert" werden kann?

Dann habe ich noch eine Zusatzfrage: Kann man die Erstellung eines Textfiles, durch einen Zeitstempel unterscheiden?

Ausführen des Batchfiles um 8:00 => cluster_8_00.txt
Ausführen des Batchfiles um 8:12 => cluster_8_12.txt

Ich habe mit Mama Google leider nichts brauchbares gefunden.


Gruss,
Hacks90

Content-Key: 163442

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

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

Member: Skyemugen
Skyemugen Mar 28, 2011 at 08:03:34 (UTC)
Goto Top
Aloha,

zum Ersten kann ich wenig beitragen (keine Domänenkenntnisse ^.^), zum Zweiten aber schonmal den Tipp geben mit
>>cluster_%time:~1,1%_%time:~3,2%.txt
allerdings(!) würde das nur bei Uhrzeiten unter 10 Uhr sein, denn sonst würde
>>cluster_%time:~0,2%_%time:~3,2%.txt
greifen müssen (bei diesem würde bei einstelligen Uhrzeiten jedoch eine Leerstelle entstehen bzw. die .txt nicht korrekt erstellt werden)
Es lässt sich natürlich auch etwas anders regeln (oder durch IF Abfragen entscheiden), bleibt allerdings auch die Frage: Soll das Format exakt 8_00 sein oder ginge auch 08_00, dann würde ich es z.B. ganz einfach so lösen:
for /f "tokens=1-2 delims=:" %%i in ('time /t') do set "Stunde=%%i" && set "Minuten=%%j"
>>cluster_%Stunde%_%Minuten%.txt

Nunja, viele Wege führen nach Rom =)

greetz André

edit: Angaben beziehen sich auf Windows XP, ob bei 2008 auch die Leerstelle entstehen würde, oder mit %time% die Uhrzeit ohne Null angezeigt wird, kann ich nicht prüfen
Member: Hacks90
Hacks90 Mar 28, 2011 at 08:13:52 (UTC)
Goto Top
Danke erstmals für deine schnelle und gut erklärte Antwort.
Ich werde es gleich kurz austesten und Dir ein Feedback geben, ob es auch unter 2008 funktioniert.

Gruss Hacks90


edit: ich beginne mein Script mit:

set Ausgabe=cluster.txt"

und setzte dann bei dein Befehlen, welche die Informationen herausschreiben solllen ">> %Ausgabe% hinten hin. Jedoch funktionierte deine Lösung mit dem Set Befehl nicht (set "Ausgabe=cluster_%Stunde%_%Minuten%.txt") oder mache ich hier einen Überlegungsfehler?
Member: Skyemugen
Skyemugen Mar 28, 2011 at 08:31:43 (UTC)
Goto Top
Zitat von @Hacks90:
Jedoch funktionierte deine Lösung mit dem Set Befehl nicht (set "Ausgabe=cluster_%Stunde%_%Minuten%.txt") oder mache ich hier einen Überlegungsfehler?

Aloha,

nunja du versuchst eine Variable in einer Variable zu definieren (set VAR=%VAR2%_%VAR3%) was aber nicht möglich ist (set VAR=Zeichenfolge) ;)

greetz André

edit:
set Ausgabe=cluster.txt
... macht wenig Sinn, sonst hättest du ja am Ende cluster.txt_08_22 wenn du die Variablen hinter %Ausgabe% setzt

edit²: natürlich ist es möglich, siehe letzten Kommentar immer diese Montage
Member: Hacks90
Hacks90 Mar 28, 2011 at 08:48:53 (UTC)
Goto Top
Okkay. Das habe ich mir bereits gedacht. Sry ich bin ein ziemlicher Scripting Frischling. =S.

Also ich habe deine Lösungen getestet. >>cluster_%time:~0,2%_%time:~3,2%.txt Funktioniert wirklich nur bei Zeiten, welche die Stunde 2 stellig ist, ansonsten erstell es das File so => cluster_

Die Variante mit der for /f Loop-Lösung funktioniert soweit, jedoch benötige ich unbedingt ein TXT-File und deine Lösung erstellt kein TXT file sondern "cluster_08_42" ohne eine Endung. Woran könnte dies liegen ? =S.

Gruss Hacks90

edit: Getestet auf Windows Server 2008 R2
Member: Skyemugen
Skyemugen Mar 28, 2011 at 08:52:21 (UTC)
Goto Top
Aloha,

ach du warst ein wenig zu früh :D lies mein letztes EDIT =)

(darum hab ich am Anfang auch >>cluster_%Stunde%_%Minuten%.txt gesetzt - in Ausgabe würde ich maximal einen Pfad [falls vorhanden/notwendig] hinterlegen oder ganz weglassen)

greetz André
Member: Skyemugen
Skyemugen Mar 28, 2011 at 09:03:27 (UTC)
Goto Top
Aloha,

mir fiel da noch was ein: (heute ist Montag, da drehen die Zahnräder noch nicht so - natürlich ist es möglich Variablen in Variablen zu setzen mit dem richtigen Anfang ^_^)
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1-2 delims=:" %%i in ('time /t') do set "Stunde=%%i" && set "Minuten=%%j"  

set "Ausgabe=cluster_!Stunde!_!Minuten!.txt"  

>>%Ausgabe%
bzw:
set "Ausgabe=cluster_%Stunde%_%Minuten%.txt"  

>>!Ausgabe!

die FOR-Schleife muss dann aber auch als Erstes stehen bzw. man macht gleich
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1-2 delims=:" %%i in ('time /t') do (  
set "Stunde=%%i"  
set "Minuten=%%j"  
set "Ausgabe=cluster_!Stunde!_!Minuten!.txt"  
)

echo %Stunde%_%Minuten% >>%Ausgabe%
funktioniert dann auch nur in dieser Ausführung

greetz André
Member: Hacks90
Hacks90 Mar 28, 2011 at 09:14:37 (UTC)
Goto Top
mir fiel da noch was ein: (heute ist Montag, da drehen die Zahnräder noch nicht so)
so geht es mir auch. =D

Jedoch erstellt es immer noch eine Endungslose Datei. => "cluster_09_12"

Schau mal in deinen Nachrichten.

Gruss Hacks90
Member: Skyemugen
Skyemugen Mar 28, 2011 at 09:25:14 (UTC)
Goto Top
Aloha,

kann ich a) nicht nachvollziehen (bei mir werden .txt erstellt, egal wie ich es ausgeben lasse) und b) schaue ich i.d.R. ungern in PMs rein, wenn es um ein öffentliches Thema geht =)

bei mir hat dein verwendetes echo Aktive Node: %Computername% >>cluster_%Stunde%_%Minuten%.txt ein cluster_11_24.txt erstellt

greetz André
Member: Hacks90
Hacks90 Mar 28, 2011 at 09:29:35 (UTC)
Goto Top
bei mir hat dein verwendetes echo Aktive Node: %Computername% >>cluster_%Stunde%_%Minuten%.txt ein cluster_11_24.txt
erstellt


bei mir unter dem Windows XP Pro Client erstellt es auch ein Textfile. Nur auf am Windows Server 2008 R2 nicht. *verwirrt*.


edit: Der Inhalt der erstellten Datei sieht so aus:

Aktive Node: IPANODE1  AM.txt
Domäne:        AM.txt
Datum:       Mon 03/28/2011  AM.txt

Dabei stelle ich mir eine Frage: Woher kommt das "AM.txt"?

Gruss Hacks90
Member: Skyemugen
Skyemugen Mar 28, 2011 at 09:35:07 (UTC)
Goto Top
Aloha,

und die Anzeige der bekannten Dateiendungen ist auch aktiviert? Oder ist es wirklich keine .txt-Datei?

greetz André

edit: AM ... was für ein Zeitformat hat denn der Win 2008? AM PM? (scheint so, wenn ich mir das Datum angucke - english please)
Schreibe doch mal, was unter echo %time% und time /t ausgegeben wird.
Member: Hacks90
Hacks90 Mar 28, 2011 at 09:39:31 (UTC)
Goto Top
Haii,

Zu a) JA ist aktiviert
http://s7.directupload.net/file/d/2477/899wxo89_jpg.htm

b) leider nicht.


Gruss Hacks90.


edit: Danke viel mals. Ich musste die Regional Einstellungen ändern. Diese waren noch auf Englisch(UK) eingetragen. Jedoch habe ich diese auf mein Land eingestellt German(Switzerland) und jetzt funktioniert alles. Danke Danke Danke. Ich bin gerade ziemlich happy.


Gruss Hacks90
Member: Skyemugen
Skyemugen Mar 28, 2011 at 09:57:52 (UTC)
Goto Top
Ah, das steht ja in der Datei drin heute ist wirklich Montag, oder und dann war auch noch Zeitumstellung ... dann ist natürlich das ganze time & co. unrelevant in dem Fall (AM PM ...)
poste doch einfach nochmal dein aktuelles Skript hier öffentlich [damit jeder, der das Problem evtl. verfolgt/verfolgen wird auch alle Infos hat], dann schauen wir nochmal ...
Hm, dass kein .txt erstellt wird, ist mir momentan ein Rätsel - wir haben hier aber nur einen 2003er, also kann ich es nicht testen/prüfen ^_^


greetz André

EDIT Aha, also doch was auf Englisch :D good to know - und .txt wird jetzt auch erstellt?

Tja, dann zurück zu deinem Hauptanliegen oder hast du da jetzt schon was für gefunden (an den Code per PM erinner)
Member: Hacks90
Hacks90 Mar 28, 2011 at 10:45:11 (UTC)
Goto Top
EDIT Aha, also doch was auf Englisch :D good to know - und .txt wird jetzt auch erstellt?
Ja erstellt alles einwandfrei. face-smile Danke


Tja, dann zurück zu deinem Hauptanliegen oder hast du da jetzt schon was für gefunden (an den Code per PM erinner)
Noch nicht. Aber sobald ich eine Lösung hätte würde ich es hier mitteilen. Und natürlich auch meine Source posten.


Danke und bis später Hacks90
Member: Hacks90
Hacks90 Mar 28, 2011 at 11:16:38 (UTC)
Goto Top
Ich habe noch eine Frage. Kennst Du dich eventuell mit dem Befehl findstr aus?

Gruss Hacks90
Member: bastla
bastla Mar 28, 2011 at 12:31:33 (UTC)
Goto Top
Hallo Hacks90 und willkommen im Forum, hallo Skyemugen!

Nachdem Ihr Euch zum Dateinamen "durchgekämpf" habt, ein Hinweis zum Thema "Domäne": Vielleicht findet sich ja etwas Passendes unter den Systemvariablen (jenen, die per "set" angezeigt werden ...

Grüße
bastla

P.S.: Die Frage
Kennst Du dich eventuell mit dem Befehl findstr aus?
lässt sich zwar (sicher auch von Skyemugen) mit "ja" beantworten, aber ob das dann schon hilft ... face-wink
Member: Hacks90
Hacks90 Mar 28, 2011 at 12:42:08 (UTC)
Goto Top
Hallo bastla,

Ich habe dies bereits gelöst, ich wollte es eben hineinschreiben face-smile.

LÖSUNG-> %USERDOMAIN% =D. aber danke für dein Tipp.


Zu der Frage: Ist es möglich mit dem findstr Befehl die Spalte in welcher Cluster Networt 1 bzw. 2 zu entfernen?


Listing properties for all network interfaces:



T  Node            Network         Name                 Value

-- --------------- --------------- -------------------- ----------------------

SR TESTNODE1        Cluster Network 1 Name                 TESTNODE1 - Puplic Area

SR TESTNODE1        Cluster Network 1 Node                 TESTNODE1

SR TESTNODE1        Cluster Network 1 Network              Cluster Network 1

SR TESTNODE1        Cluster Network 1 Adapter              HP NC7782 Gigabit Server Adapter #2

SR TESTNODE1        Cluster Network 1 AdapterId            6362D1D1-6C12-4DAA-9D07-8EAF0048A10B

DR TESTNODE1        Cluster Network 1 DhcpEnabled          0 (0x0)

MR TESTNODE1        Cluster Network 1 IPv6Addresses        

MR TESTNODE1        Cluster Network 1 IPv4Addresses        172.xxx.xxx.xxx

SR TESTNODE1        Cluster Network 1 Address              172.xxx.xxx.xxx

S  TESTNODE1        Cluster Network 1 Description          

SR TESTNODE2        Cluster Network 1 Name                 TESTNODE2 - Puplic Area

SR TESTNODE2        Cluster Network 1 Node                 TESTNODE2

SR TESTNODE2        Cluster Network 1 Network              Cluster Network 1

SR TESTNODE2        Cluster Network 1 Adapter              HP NC7782 Gigabit Server Adapter #2

SR TESTNODE2        Cluster Network 1 AdapterId            47C83D10-DB80-48DA-A45C-23EBB82B992A

DR TESTNODE2        Cluster Network 1 DhcpEnabled          0 (0x0)

MR TESTNODE2        Cluster Network 1 IPv6Addresses        

MR TESTNODE2        Cluster Network 1 IPv4Addresses        172.xxx.xxx.xxx

SR TESTNODE2        Cluster Network 1 Address              172.xxx.xxx.xxx

S  TESTNODE2        Cluster Network 1 Description          

SR TESTNODE1        Cluster Network 2 Name                 TESTNODE1 - Privat Area

SR TESTNODE1        Cluster Network 2 Node                 TESTNODE1

SR TESTNODE1        Cluster Network 2 Network              Cluster Network 2

SR TESTNODE1        Cluster Network 2 Adapter              HP NC7782 Gigabit Server Adapter

SR TESTNODE1        Cluster Network 2 AdapterId            8C36197F-D719-4150-8FF3-E7A9DDEE5C24

DR TESTNODE1        Cluster Network 2 DhcpEnabled          0 (0x0)

MR TESTNODE1        Cluster Network 2 IPv6Addresses        

MR TESTNODE1        Cluster Network 2 IPv4Addresses        192.xxx.xxx.xxx

SR TESTNODE1        Cluster Network 2 Address              192.xxx.xxx.xxx

S  TESTNODE1        Cluster Network 2 Description          

SR TESTNODE2        Cluster Network 2 Name                 TESTNODE2 - Privat Area

SR TESTNODE2        Cluster Network 2 Node                 TESTNODE2

SR TESTNODE2        Cluster Network 2 Network              Cluster Network 2

SR TESTNODE2        Cluster Network 2 Adapter              HP NC7782 Gigabit Server Adapter

SR TESTNODE2        Cluster Network 2 AdapterId            AC8500F3-773A-43A1-94B3-B4FBBD4C940C

DR TESTNODE2        Cluster Network 2 DhcpEnabled          0 (0x0)

MR TESTNODE2        Cluster Network 2 IPv6Addresses        

MR TESTNODE2        Cluster Network 2 IPv4Addresses        192.xxx.xxx.xxx

SR TESTNODE2        Cluster Network 2 Address              192.xxx.xxx.xxx

S  TESTNODE2        Cluster Network 2 Description

Gruss Hacks90.
Member: Skyemugen
Skyemugen Mar 28, 2011 at 12:56:40 (UTC)
Goto Top
Aloha,

womit genau erstellst du jetzt diese Zusammenstellung?
Mit findstr eine Spalte ausschließen käme mir nicht gerade in den Sinn, eher eine FOR Schleife, bei der man einen Token weglässt aber da mir momentan unbekannt ist , über welchen Weg du jetzt genau die Ausgabe erstellst, könnte ich dir jetzt schlecht ein Beispiel anbieten *gg* und ob es überhaupt direkt machbar wäre oder erst als „Nacharbeit”

greetz André
Member: bastla
bastla Mar 28, 2011 at 14:08:20 (UTC)
Goto Top
... wobei noch interessant wäre, ob die Spaltenzwischenräume auch im Original aus Leerzeichen (oder doch TABs) bestehen ...

Grüße
bastla
Member: Hacks90
Hacks90 Mar 28, 2011 at 14:36:23 (UTC)
Goto Top
Hallo,

da mir momentan unbekannt ist , über welchen Weg du jetzt genau die Ausgabe erstellst,

Es ist der Befehl cluster netint /prop, welchem du keine Optionen mitgeben kannst und dei Ausgabe vordefiniert ist, wie eben im Beispiel ersichtlich.$
Jedoch ist es egal ob Cluster Network 1 oder 2 somit kann diese Spalte eigentlich gelöscht werden.

Gruss Hacks90.

Edit: Die Abstände sind Leerzeichen und keine TAB's.
Member: Skyemugen
Skyemugen Mar 28, 2011 at 14:47:26 (UTC)
Goto Top
Aloha,

drei Dinge:

1) habe gleich Feierabend => brain.exe geht auf standby
2) cluster netint /prop hm ... da ich mich weiterhin im Stadium „learning-by-doing/testing” in Sachen „umfangreicheres batching oder auch vbs” befinde, habe ich ergo nichts zum Testen und prüfen ;D
2) Leerzeichen? Och nö ... es hätte ja auch mal einfach sein können *gg* - warum sollte die Spalte Network auch „schön” sein

Aber wo der bastla nun schonmal vorbeigeschnuppert hat, bastlaelt er eventuell sogar etwas passendes hin, ich wäre wahrscheinlich wieder bis zur Mitte/Ende der Woche damit beschäftigt einen halbfunktionierenden Ablauf zu erstellen *gg*
Ich schätze also, die Nachbearbeitung würde via temporärem file erfolgen evtl. sogar vbs ... hm, ich grübel natürlich parallel bei solchen Sachen mit aber lasse mich dann doch oft von der Lösung überraschen ^_^

greetz André
Member: bastla
bastla Mar 28, 2011 at 14:49:54 (UTC)
Goto Top
Hallo Hacks90!

Versuch es mal damit (sollte fast so schön wie das Original sein face-wink):
@echo off & setlocal
set "Aus=D:\Ausgabe.txt"  

>"%Aus%"  echo T  Node            Name                 Value  
>>"%Aus%" echo -- --------------- -------------------- ----------------------  
for /f "skip=3 tokens=1-5*" %%a in ('cluster netint /prop') do >>"%Aus%" echo %%a %%b %%f  
Grüße
bastla

[Edit] @Skyemugen: Überraschung dürfte das aber keine sein ... face-wink [/Edit]
Member: Skyemugen
Skyemugen Mar 28, 2011 at 14:54:20 (UTC)
Goto Top
Aloha bastla!

Wie gesagt: ich brauche immer was zum testen und war mir diesbezüglich nicht sicher, ob die for-Schleife beim cluster-Befehl greifen würde ^_^ man weiß ja nie aber wenn das so hinhauen sollte, dann war mein Ansatz vorhin
eine FOR Schleife, bei der man einen Token weglässt
ich hätte Parameter schreiben sollen, egal passt schon ;)
ja doch passend (du Trickser ^.^ die Spalten überspringen und selber setzen ... der Montag machts einfach, hehe)

greetz André

P.S.: Wenn ich Feierabend habe, denke ich gerne kompliziert :D
Member: Biber
Biber Mar 28, 2011 at 14:55:30 (UTC)
Goto Top
Moin Hacks90,

willkommen im Forum.
Zitat von @Hacks90:
Es ist der Befehl cluster netint /prop, welchem du keine Optionen mitgeben kannst
und dei Ausgabe vordefiniert ist,
Echt? Hast du in letzter Zeit mal CLUSTER /? oder CLUSTER NETINT / eingetippt?

In meiner Jugend, als Michael Jackson noch schwarz war, da war auch über
/PROP[ERTIES][:propname[,propname ...] /USEDEFAULT]
...eine etwas spezifischere Ausgabe möglich.

Klar bekommen wir es auch über ausgetüftelte Batch-Slice&Dice-Techniken hin,
is' doch aber albern, oder?

Grüße
Biber
Member: Hacks90
Hacks90 Mar 29, 2011 at 07:11:01 (UTC)
Goto Top
Hallo Biber,

In meiner Jugend, als Michael Jackson noch schwarz war, da war auch über
> /PROP[ERTIES][:propname[,propname ...] /USEDEFAULT]
...eine etwas spezifischere Ausgabe möglich.

Klar bekommen wir es auch über ausgetüftelte Batch-Slice&Dice-Techniken hin,
is' doch aber albern, oder?

Ich habe es gestern abend noch gesehen, dass doch eine spzifischere Ausagabe möglich ist, jedoch nur betreffend den einzelnen Zeilen und nicht betreffend Spalten.


T  Node            Network         Name                 Value
-- --------------- --------------- -------------------- ----------------------
SR TESTNODE2        Cluster Network 1 Name                 TESTNODE2 - Puplic Area

cluster netint /prop:Name, etc.

Jedoch wo mache ich die Spalten angaben?


Gruss Hacks90.
Member: Hacks90
Hacks90 Mar 29, 2011 at 08:43:24 (UTC)
Goto Top
Jedoch wo mache ich die Spalten angaben?


Hat sich geklärt. Die Spaltenlöschung ist nicht notwendig. Somit sind alles meine Fragen gelöst. Danke vielmals für die Lösungstipps.


Gruss Hacks90