davidl
Goto Top

String Formatierung in Batch Datei

Ich möchte mittels Batch einige Programme auf allen PCs im Netzwerk ausführen, mach ich mit PSexec, haut auch hin.

Derzeit PING ich die PCs alle noch einmal, damit er nicht erst versucht, auf Offline-PCs zu arbeiten.
Dieser 1 sek. lange PING ist mir auch noch zu lang(bei einigen 100 PCs), drum hab ich mit net view alle PCs anzeigen lassen, und das drumherum schon mal weg geschmissen.

echo.
net view >> NETLIST2.txt
FINDSTR \\ NETLIST2.txt >> NETLIST.txt
PAUSE


Ergebnis:

\\PC1
\\PC2
\\PC3
...


und diese 2 \\ will ich auch noch weg kriegen, damit ich dann eine Liste

PC1
PC2
PC3

hab, und auf die gleich ohne pingen (oder vl doch noch mal vorsorglich pingen) zugreifen kann

Darum, wie les ich aus der Datei die Zeilen aus, mach die ersten zwei Symbole weg und schreib das in ne neue Datei.

So etwa hab ichs mir vorgestellt,

for /f %%I in (netlist.txt) do (
set %%I = %I:~2,10%
echo %%I >> netlist.txt
)


bring ich aber nicht zusammen

Content-Key: 125274

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

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

Member: ralfkausk
ralfkausk Sep 18, 2009 at 10:48:28 (UTC)
Goto Top
also, ich wurde die unix-tools nehmen
das sind programme aus dem unix bereich die auf windows portiert wurden
die programme sind freeware, meiner meining nach wesentlich benutzerfreundlicher und maechtiger als windows bordmittel

aus der sammlung brauchst du:
cat und sed

cat NETLIST2.txt|sed s/\\\\// > NETLIST.txt

hab das gerade ausprobiert, dunktioniert wunderbar
Mitglied: 60730
60730 Sep 18, 2009 at 11:01:37 (UTC)
Goto Top
Servus,

ich versteh nicht so ganz - wo das Problem liegt. - bzw. sehe ein anders Problem..

Hat der Rechner eine Beschreibung - taucht die in der Netlist auch auf.

Anstatt die For Schleife für das filtern der netlist zu nehmen - würde ich - wenn schon - die for Schleife für das Psexec nehmen.

Denn Psexec - will wiederum den führenden \\ haben.

Aber selbst bei "meinen" deutlich mehr als 100 Clients - nehme ich ein "führendes" if exist computer\c$

- denn weder das erfolgreiche Pingen oder das die Kiste in einem Netzwerk Cache noch gelistet wird - hat nix zu bedeuten.

gruß
Mitglied: 60730
60730 Sep 18, 2009 at 11:19:00 (UTC)
Goto Top
?

nun hab ich mir ein Herz genommen und meinen "sonst üblichen" Bauer Stall Hallo Spruch - verkniffen.

Und nun ist das Problem kommentarlos gelöst?

schade, das wir nun alle die Kristallkugel wieder aus dem Picknickkoffer nehmen müssen - um zu raten - welches der beiden Schweine nun das 5 Mark Stückerl bekommen hat...
Member: davidl
davidl Sep 18, 2009 at 11:21:44 (UTC)
Goto Top
unix tools haben den zuschlagh bekommen


bin grad fertig mit dem ausprobieren, hat gegeht, danke
Member: ralfkausk
ralfkausk Sep 18, 2009 at 11:31:26 (UTC)
Goto Top
gute entscheidung ;)

noch 'ne kleine Hilfe
Falls ein rechner tatsaechlich eine Beschreibung haben sollte, kannst Du diese mit dem zusaetzlichen Befehl cut entfernen

cat test3.txt|sed s/\\\\//|cut -d" " -f1

P.S.
fast jedes Programm der Sammlung bietet dir eine Hilfe an
z.B. cut --help
Mitglied: 60730
60730 Sep 18, 2009 at 11:35:13 (UTC)
Goto Top
Zitat von @ralfkausk:
gute entscheidung ;)

sagt / schreibt wer?

Schonmal einen Rechner heruntergefahren und 1 minute später net view laufen lassen?

Auf welchen Rechner überhaupt - dem DNS?

Sorry - aber vielleicht bin ich wirklich auf dem Holzweg....
Member: bastla
bastla Sep 18, 2009 at 11:50:28 (UTC)
Goto Top
Hallo an Alle!

Nur der Vollständigkeit halber (und ohne "net view" zu hinterfragen face-wink) die Variante ohne Zusatztools:
for /f "delims=\" %%i in ('net view^|findstr "\\\\"') do echo %%i  
Grüße
bastla

P.S.: Pingen sollte für "psexec" eigentlich nicht nötig sein (siehe "-n") ...
Mitglied: 60730
60730 Sep 18, 2009 at 16:37:01 (UTC)
Goto Top
Zitat von @bastla:
Hallo an Alle!

Servus bastla,

Nur der Vollständigkeit halber (und ohne "net view" zu hinterfragen face-wink) die Variante ohne Zusatztools:
for /f "delims=\" %%i in ('net view^|findstr "\\\\"') do echo %%i   

genau das ist es, was ich am Administrator Forum so sehr schätze.
Egal, wie - jedes (ordentlich geschildertes) Problem wird hier ordentlich gelöst.

Grüße
bastla

P.S.: Pingen sollte für "psexec" eigentlich nicht nötig sein (siehe "-n") ...
Pss: Ich vermute mal, wenn es nicht der gewaltige Zeitbedarf vom Ping gewesen wäre - irgendwoher (Anleitung /proof of Concept/ Softwareverteilung via Psesex?) hat jemand herausbekommen, das eine Computerliste fürs Psexec gebraucht wird.

Gruß
Member: Biber
Biber Sep 18, 2009 at 16:45:20 (UTC)
Goto Top
A propos proof-of-concept....

bei mir am CMD-Prompt klappt neben der Backslash-Verdoppelungsvariante auch ein
for /f "delims=\" %i in ('net view^|findstr /C:"\\"') do @echo %i

Mein ja nur.... da hab ich nicht so viele Nachfragen von meinen blutjungen rothaarigen Praktikantinnen...

Schönes Wochenende
Biber
Member: bastla
bastla Sep 18, 2009 at 16:52:42 (UTC)
Goto Top
@Biber
Mit "\\\\" schaut's einfach interessanter aus face-wink (aber das Suchen nach nur einem "\" in der Zeile sollte für diesen Fall natürlich auch genügen) ...

Auch Dir ein schönes Wochenende
bastla

P.S.:
... da hab ich nicht so viele Nachfragen von meinen blutjungen rothaarigen Praktikantinnen...
Wie, Du magst mit denen nicht (über Batches) reden? face-wink
Member: Biber
Biber Sep 18, 2009 at 17:06:19 (UTC)
Goto Top
@bastla

Meine blutjungen rothaarigen Praktikantinnen waren schon heute vormittag fieberhaft am Suchen nach den Zeilen "Call :buddies %*" , "goto :Weekend" und "Exit"

Die kann ich Freitags für Deine schrägen Lösungen nicht so recht begeistern. face-wink

Schönes Wochenende auch Dir!
Biber
P.S. Und natürlich auch allen Nicht-Blutjungen und Nicht-Rothaarigen.
Member: bastla
bastla Sep 18, 2009 at 17:17:25 (UTC)
Goto Top
@Biber
Ich muss zugeben, "\\\\" ist tatsächlich (schon rein optisch) etwas schräg ... face-wink

Grüße
bastla