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, 993 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
Ähnliche Inhalte
Entwicklung
Captive Portal Seite mit Voucher speichern Funktion (4)

Frage von fisi-pjm zum Thema Entwicklung ...

Hyper-V
gelöst HyperV - ungültige MS-DOS Funktion (14)

Frage von Franz-Josef-II zum Thema Hyper-V ...

Batch & Shell
gelöst Batch Programm (Ping funktion) (1)

Frage von MedicalAd zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...