WinFuture-Forum.de: Xml In Der Kommandozeile Von Xp? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Xml In Der Kommandozeile Von Xp?


#1 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.759
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 19. März 2008 - 12:08

Hi,

ich habe folgendes Problem. Zur Identifizierung der Modellnummern einiger Rechner habe ich ein Tool vom Hersteller (Dell). Dieses gibt mir eine XML-Datei mit beliebigen (vorher definierten) Infos aus. Nun brauche ich aber einige dieser Infos in der Kommandozeile als Variable.

Hat irgendwer Ideen wie ich das realisieren kann?

Die XML-Dateien sehen folgendermaßen aus:
<?xml version="1.0"?>
<root>
	<command name="get">
		<property name="SystemDescription" ischecked="1" value="OptiPlex GX260			   " outcome="OK" errorcode="0x0"/>
	</command>
</root>


Also ich brauche den Teil von "name" als Variablenbezeichnung und "value" als entsprechenden Variablenwert.

Grüße,
sкavєи
Eingefügtes Bild
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.132
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 19. März 2008 - 14:14

Da ich mich mit den Windows-Tools mal gar nicht auskenne, spricht was dagegen, die unxutils zu installieren und dann das gewünschte mit (g)awk zu machen?
0

#3 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 19. März 2008 - 15:23

Das müsste mittels eine for-schleife lösbar sein. for /?

Wenn du es nicht selbst hinkriegst, meld dich einfach. :unsure:
0

#4 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.759
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 19. März 2008 - 16:06

Beitrag anzeigenZitat (ph030: 19.03.2008, 14:14)

Da ich mich mit den Windows-Tools mal gar nicht auskenne, spricht was dagegen, die unxutils zu installieren und dann das gewünschte mit (g)awk zu machen?
Hmm, wäre schon möglich, aber ist eher eine unschöne Lösung, da man die awk.exe dann immer mitliefern müsste. Es geht dabei um Indentifizierung der Rechner zur Treiberinstallation vom RIS aus.

Beitrag anzeigenZitat (Witi: 19.03.2008, 15:23)

Wenn du es nicht selbst hinkriegst, meld dich einfach. :blink:
*meld* Damit habe ich vorhin auch schon rumgefrickelt, aber da seh ich ja mal gar keine Sonne. :unsure:
Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.132
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 19. März 2008 - 16:20

Zitat

Es geht dabei um Indentifizierung der Rechner zur Treiberinstallation vom RIS aus.
Dann könnte man awk doch da ablegen und das Skript um einen netmount erweitern...fugly, das geb ich zu, aber was @witi da mit der For-Schleife will, ist mir auch noch nicht klar geworden(gut, bin ja auch kein Winshell-Kind :unsure: ).
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 19. März 2008 - 19:52

tzz...typisch SI'ler, ohne uns wärt ihr schon längst verloren :)

Zitat

@echo off
FOR /F "skip=2 tokens=2 delims==> " %%i IN (test.xml) DO echo %%i


Im Prinzip macht dir diese for-schleife aus einer Zeile ein Array. An welchen Zeichen du splitten willst, sagst du in delims (=> ) [ja, auch ein Leerzeichen]. Mit tokens, gibst du an welche Stellen des Arrays du haben möchtest (folgendes ist erlaubt: tokens=x,y,m-n). Mit skip=2 überspringst du einfach die ersten beiden Zeilen, kannst hier natürlich mehr angeben falls notwendig.

Hier die verschiedenen Ausgaben an Hand unterschiedlicher Tokens
tokens=1
<command
<property
</command
</root

tokens=2
name
name

tokens=3
"get"
"SystemDescription"

tokens=4
ischecked

tokens=5
"1"


Das sollte für die Erklärung reichen. Den Rest dürftest du jetzt locker schaffen. :)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0