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

Vbs RegEx gesucht

Frage Entwicklung VB for Applications

Mitglied: gummistiefel

gummistiefel (Level 1) - Jetzt verbinden

19.10.2010 um 11:16 Uhr, 4616 Aufrufe, 4 Kommentare

Hallo,

ich möchte für die weitere Verarbeitung der Daten einen Regulären Audruck unter vbs definieren.

Konkret möchte ich aus der Pfadangabe (z.B. C:\Programme\ordner\programm.exe ) den Pfad C:\Programme\ordner und den Namen der .exe Datei in Separaten Variablen zwischenspeichern. Nur leider finde ich keine passende Möglichkeit das herauszufiltern bzw. bin ich mir nicht mal sicher ob das mit vbs überhaupt realisierbar ist ?

Hintergrund der ganzen Aktion ist, dass ich anhand der laufenden Tasks die Versionsnummer vom Programm herausfinden möchte. Leider gibt es in win32_process keine Klasse mit der ich das bewerkstelligen kann. Also habe ich mir gedacht, dass ich über den win32_process ... ExecutablePath die Shell.Application ... GetDetailsOf auslese. Diese benötigt afaik aber separat den exe Namen und den Pfad.

01.
strComputer = "." 
02.
Set dienst = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")' 
03.
Set abfrage = dienst.ExecQuery("Select * from Win32_Process") 
04.
 
05.
' print usable information into XML-like format  
06.
For Each prozess In abfrage 
07.
	eigenschaften = prozess.GetOwner(strNameOfUser, strUserDomain) 
08.
	WScript.Echo "<SOFTWARES>"  
09.
	WScript.Echo "<PUBLISHER>"& prozess.Name &"</PUBLISHER>" 
10.
	WScript.Echo "<NAME>"& prozess.caption &"</NAME>" 
11.
	WScript.Echo "<VERSION>N/A</VERSION>" 
12.
	WScript.Echo "<FOLDER>" & prozess.ExecutablePath &"</FOLDER>"  
13.
	WScript.Echo "<COMMENTS>" & "# " & prozess.CommandLine &" #" &"</COMMENTS>" 
14.
	WScript.Echo "<FILENAME>N/A</FILENAME>" 
15.
	WScript.Echo "<FILESIZE>N/A</FILESIZE>" 
16.
	WScript.Echo "<SOURCE>N/A</SOURCE>" 
17.
	WScript.Echo "<GUID>N/A</GUID>" 
18.
	WScript.Echo "<LANGUAGE>N/A</LANGUAGE>" 
19.
	WScript.Echo "</SOFTWARES>" 
20.
Next
Mitglied: 76109
19.10.2010 um 12:40 Uhr
Hallo gummistiefel!

Das geht auch per FileSystemObject. Beispiel mit 7zip.Exe
01.
Const Path = "C:\Program Files (x86)\7-Zip\7z.exe" 
02.
 
03.
Dim Fso, File 
04.
Dim FileBaseName, FileExtensionName, FileName, FileFolder 
05.
Dim FileVersion, FileCreated, FileSize, FileType 
06.
     
07.
Set Fso = CreateObject("Scripting.FileSystemObject") 
08.
     
09.
Set File = Fso.GetFile(Path) 
10.
     
11.
FileBaseName = Fso.GetBaseName(Path)            '= "7z" 
12.
FileExtensionName = Fso.GetExtensionName(Path)  '= "exe" 
13.
FileName = Fso.GetFileName(Path)                '= "7z.exe" 
14.
FileFolder = Fso.GetParentFolderName(Path)      '= "C:\Program Files (x86)\7-Zip" 
15.
FileVersion = Fso.GetFileVersion(Path)          '= "9.10.0.0" 
16.
FileCreated = File.DateCreated                  '= #22.12.2009 14:17:38# 
17.
FileSize = File.Size                            '= 280064 
18.
FileType = File.Type                            '= "Anwendung"
Gruß Dieter
Bitte warten ..
Mitglied: gummistiefel
19.10.2010 um 14:47 Uhr
Hallo Dieter,

danke für die schnelle und kompetente Antwort. Das FileSystemObject war genau das wonach ich gesucht habe.
Leider bekomme ich es nicht hin, dass ich in Const Path die prozess.ExecutablePath einfügen kann. Für den geübten Scripter mag das sicherlicht kein Problem darstellen nur ich komme nur sehr unregelmäßig in den "Genuss" von VBS.
Bitte warten ..
Mitglied: 76109
19.10.2010 um 15:24 Uhr
Hallo gummistiefel!

Lösche die Codezeile mit der Konstanten "Const Path = ...." und dann in etwa so:
01.
'..... 
02.
Set Fso = CreateObject("Scripting.FileSystemObject") 
03.
 
04.
'print usable information into XML-like format 
05.
For Each prozess In abfrage 
06.
    Set File = Fso.GetFile(prozess.ExecutablePath) 
07.
     
08.
   'FileBaseName = Fso.GetBaseName(File.Path) 
09.
   'FileExtensionName = Fso.GetExtensionName(File.Path) 
10.
   'FileName =  File.Name  
11.
   'FileFolder = File.ParentFolder.Path    
12.
   'FileVersion = Fso.GetFileVersion(File.Path) 
13.
   'FileCreated = File.DateCreated 
14.
   'FileSize = File.Size 
15.
   'FileType = File.Type 
16.
 
17.
   '..... 
18.
    WScript.Echo "<VERSION>" & Fso.GetFileVersion(File.Path) & "</VERSION>" 
19.
    WScript.Echo "<FOLDER>" & File.ParentFolder.Path & "</FOLDER>" 
20.
    WScript.Echo "<COMMENTS>" & "# " & prozess.CommandLine & " #" & "</COMMENTS>" 
21.
    WScript.Echo "<FILENAME>" & File.Name & "</FILENAME>" 
22.
    WScript.Echo "<FILESIZE>" & File.Size & "</FILESIZE>" 
23.
   '..... 
24.
Next
Gruß Dieter
Bitte warten ..
Mitglied: gummistiefel
19.10.2010 um 17:15 Uhr
Problem gelöst


01.
 
02.
strComputer = "."      'The . means own computer 
03.
Set dienst = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")' 
04.
Set abfrage = dienst.ExecQuery("Select * from Win32_Process",,48) 
05.
 
06.
' print usable information into XML-like format 
07.
 
08.
 
09.
For i = 1 To 1 
10.
	For Each prozess In abfrage 
11.
		If Not prozess.ExecutablePath = "" Then             
12.
 
13.
		Path = prozess.ExecutablePath 
14.
	 	Path = "" & Path & "" 
15.
	 
16.
		Set fso = CreateObject("scripting.filesystemobject") 
17.
		Path =  fso.GetFileVersion (Path) 
18.
	 
19.
		WScript.Echo "<SOFTWARES>"  
20.
		WScript.Echo "<PUBLISHER>"& prozess.Name &"</PUBLISHER>" 
21.
		WScript.Echo "<NAME>"& prozess.caption &"</NAME>" 
22.
		WScript.Echo "<VERSION>"& Path & "</VERSION>" 
23.
		WScript.Echo "<FOLDER>N/A</FOLDER>" 
24.
		WScript.Echo "<COMMENTS>" & "# " & prozess.CommandLine &" #" &"</COMMENTS>" 
25.
		WScript.Echo "<FILENAME>N/A</FILENAME>" 
26.
		WScript.Echo "<FILESIZE>N/A</FILESIZE>" 
27.
		WScript.Echo "<SOURCE>N/A</SOURCE>" 
28.
		WScript.Echo "<GUID>N/A</GUID>" 
29.
		WScript.Echo "<LANGUAGE>N/A</LANGUAGE>" 
30.
		WScript.Echo "</SOFTWARES>" 
31.
		End If 
32.
	Next 
33.
Next
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Regex anders (1)

Frage von ukodus zum Thema Batch & Shell ...

Batch & Shell
gelöst RegEx in M3U (4)

Frage von mguenth83 zum Thema Batch & Shell ...

PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

Bibliotheken & Toolkits
gelöst Regex: Ich brauche mal eure Hilfe (4)

Frage von Vancouverona zum Thema Bibliotheken & Toolkits ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Firewall
Richtige Grundeinstellungen der Pfsense für mein Netzwerk (12)

Frage von Spitzbube zum Thema Firewall ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...