VBScript - Netzlaufwerk von gemappten Laufwerk unterscheiden
Netzwerklaufwerk vom gemappten Laufwerk unterscheiden
Hallo,
ich hoffe, dass ich hier im richtigen Forenbereich bin.
Mein Problem
In VBScript erhalte ich 2 absolute Pfade.
Nun möchte ich unterscheiden, ob die beiden Pfade identisch sind.
Hierbei benötige ich eine Lösung, um auch gemappte Pfade zu unterscheiden.
z.B.
U:\Eigene Dateien\Test und
\\MickeyMouse.local\user\home\Meier\Eigene Dateien
koenne ja das selbe Verzeichnis sein.
Ueber einen stringbasierten Verzeichnisvergleich komme ich nicht weiter.
Wie kann ich das in VBscript loesen.
Ueber einen Lösungsansatz waere ich sehr dankbar.
Gruss Hein_nieH
Hallo,
ich hoffe, dass ich hier im richtigen Forenbereich bin.
Mein Problem
In VBScript erhalte ich 2 absolute Pfade.
Nun möchte ich unterscheiden, ob die beiden Pfade identisch sind.
Hierbei benötige ich eine Lösung, um auch gemappte Pfade zu unterscheiden.
z.B.
U:\Eigene Dateien\Test und
\\MickeyMouse.local\user\home\Meier\Eigene Dateien
koenne ja das selbe Verzeichnis sein.
Ueber einen stringbasierten Verzeichnisvergleich komme ich nicht weiter.
Wie kann ich das in VBscript loesen.
Ueber einen Lösungsansatz waere ich sehr dankbar.
Gruss Hein_nieH
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 216476
Url: https://administrator.de/contentid/216476
Ausgedruckt am: 16.11.2024 um 03:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Hein-nieH.
Ansonsten hat bastla aber die richtigen Stichworte genannt. Den Test kannst du in einer Funktion abwickeln, die dir einen Wahrheitswert zurückgibt.
Beispiel:
Voraussetzung dafür, dass das funktionieren kann ist, dass die Netzlaufwerke auf deinem PC genauso gemappt sind, wie auf der Quelle, von der du die Pfade beziehst.
Grüße
rubberman
U:\Eigene Dateien\Test und
\\MickeyMouse.local\user\home\Meier\Eigene Dateien
koenne ja das selbe Verzeichnis sein.
Naja, nicht wirklich. Das Verzeichnis "Test" sollte dann auch im Netzwerkpfad erscheinen.\\MickeyMouse.local\user\home\Meier\Eigene Dateien
koenne ja das selbe Verzeichnis sein.
Ansonsten hat bastla aber die richtigen Stichworte genannt. Den Test kannst du in einer Funktion abwickeln, die dir einen Wahrheitswert zurückgibt.
Beispiel:
Option Explicit
Const strPath1 = "U:\Eigene Dateien\Test"
Const strPath2 = "\\MickeyMouse.local\user\home\Meier\Eigene Dateien\Test"
If NetPathCompare(strPath1, strPath2) Then
WScript.Echo "Gleich"
Else
WScript.Echo "Ungleich"
End If
Function NetPathCompare(ByVal strPath_1, ByVal strPath_2)
NetPathCompare = False
' Der einfachste Fall ... Textvergleich.
If StrComp(strPath_1, strPath_2, vbTextCompare) = 0 Then
NetPathCompare = True
Exit Function
End If
' Ansonsten versuchen Netzlaufwerke aufzulösen.
Dim colDrives, strDrive_1, strDrive_2, strShare_1, strShare_2, i
strDrive_1 = Left(strPath_1, 2)
strDrive_2 = Left(strPath_2, 2)
strShare_1 = strDrive_1
strShare_2 = strDrive_2
Set colDrives = CreateObject("WScript.Network").EnumNetworkDrives
For i = 0 To colDrives.Count - 1 Step 2
If StrComp(strDrive_1, colDrives.Item(i), vbTextCompare) = 0 Then
strShare_1 = colDrives.Item(i + 1)
End If
If StrComp(strDrive_2, colDrives.Item(i), vbTextCompare) = 0 Then
strShare_2 = colDrives.Item(i + 1)
End If
Next
strPath_1 = Replace(strPath_1, strDrive_1, strShare_1, 1, 1, vbTextCompare)
strPath_2 = Replace(strPath_2, strDrive_2, strShare_2, 1, 1, vbTextCompare)
If StrComp(strPath_1, strPath_2, vbTextCompare) = 0 Then NetPathCompare = True
End Function
Grüße
rubberman