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

Nach Funktion Revstr wird aufeinmal eine Leerzeile hinzugefügt VBS

Frage Entwicklung Batch & Shell

Mitglied: Invisan

Invisan (Level 1) - Jetzt verbinden

15.01.2014 um 10:40 Uhr, 998 Aufrufe, 3 Kommentare, 2 Danke

Hallo zusammen,

ich habe mal wieder ein kleines Problem.

Ich habe in VBS ein kleines Script geschrieben welches dazu dienen soll einen Output einer WMIC Variable umzudrehen und nach Lowercaps zu konvertieren.
Leider funktioniert das ganze nicht denn nach dem umwandeln wird der Output auf einmal in 2 Zeilen statt einer ausgegeben.

Hier das Skript.


Set objShell = CreateObject("WScript.Shell")
Set objWshScriptExec = objShell.Exec("wmic bios get serialnumber /VALUE")
Set objStdOut = objWshScriptExec.StdOut

While Not objStdOut.AtEndOfStream
strLine = objStdOut.ReadLine
If InStr(strLine,"=") Then
newstr = Replace(strLine,"SerialNumber=","")
revstr = StrReverse(newstr)
lstr = LCase(revstr)
WScript.Echo "Normal ="&newstr
WScript.Echo "Reverse ="&revstr
WScript.Echo "Revlow ="&lstr
End If
Wend


Ich hoffe mir kann jemand helfen das Problem zu finden und zu lösen. Ich vermute es hängt mit der Ausgabe von WMIC zusammen denn dort werden Leerzeilen mit ausgegeben.


Mit freundlichen Grüßen,

Invisan
Mitglied: colinardo
15.01.2014, aktualisiert um 11:26 Uhr
Hallo Invisan,
in den Zeilen von "StdOut" sind in den Zeilen zusätzlich die Zeilenumbrüche enthalten. Diesen musst du noch entfernen:
01.
Set objShell = CreateObject("WScript.Shell") 
02.
Set objWshScriptExec = objShell.Exec("wmic bios get serialnumber /VALUE") 
03.
Set objStdOut = objWshScriptExec.StdOut 
04.
 
05.
While Not objStdOut.AtEndOfStream 
06.
	strLine = objStdOut.ReadLine 
07.
	If InStr(1,strLine,"=",1) Then 
08.
		newstr = Left(strLine,Len(strLine)-1) 
09.
		newstr = Replace(newstr,"SerialNumber=","",1,-1,1) 
10.
		revstr = StrReverse(newstr) 
11.
		lstr = LCase(revstr) 
12.
		WScript.Echo "Normal =" & newstr 
13.
		WScript.Echo "Reverse =" & revstr 
14.
		WScript.Echo "Revlow =" & lstr 
15.
	End If 
16.
Wend
p.s. geht auch einfacher direkt via WMI (siehe weiter unten)

Grüße Uwe
Bitte warten ..
Mitglied: Invisan
15.01.2014 um 11:13 Uhr
Zitat von colinardo:

Hallo Invisan,
in den Zeilen von "StdOut" sind in den Zeilen zusätzlich die Zeilenumbrüche enthalten. Diesen musst du noch
entfernen:
01.
> Set objShell = CreateObject("WScript.Shell") 
02.
> Set objWshScriptExec = objShell.Exec("wmic bios get serialnumber /VALUE") 
03.
> Set objStdOut = objWshScriptExec.StdOut 
04.
>  
05.
> While Not objStdOut.AtEndOfStream 
06.
> 	strLine = objStdOut.ReadLine 
07.
> 	If InStr(1,strLine,"=",1) Then 
08.
> 		newstr = Left(strLine,Len(strLine)-1) 
09.
> 		newstr = Replace(newstr,"SerialNumber=","",1,-1,1) 
10.
> 		revstr = StrReverse(newstr) 
11.
> 		lstr = LCase(revstr) 
12.
> 		WScript.Echo "Normal =" & newstr 
13.
> 		WScript.Echo "Reverse =" & revstr 
14.
> 		WScript.Echo "Revlow =" & lstr 
15.
> 	End If 
16.
> Wend 
17.
> 
Grüße Uwe

Super,

Danke dir Uwe


Mit freundlichen Grüßen,

Invisan
Bitte warten ..
Mitglied: colinardo
15.01.2014, aktualisiert um 11:25 Uhr
Du kannst die Seriennummer aber auch einfacher direkt mit WMI auslesen:
01.
strComputer = "." 
02.
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
03.
Set colItems = objWMIService.ExecQuery("Select * from Win32_BIOS",,48) 
04.
 
05.
For Each objItem in colItems 
06.
	WScript.Echo "SerialNumber: " & objItem.SerialNumber 
07.
Next
Uwe
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (21)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...