VBS kennt ExpandEnviromentStrings nicht - fehlt was?
Mein VBS-Script will nicht funktionieren weil der den Befehl nicht kennt (WinXP Professional)
Hallo Leute,
ich habe ein Script dass auf eine Datei unter "C:\Dokumente und Einstellungen\Benutzer\..." ändert.
Soweit so gut, alles funktioniert so lange ich den Pfad des Benutzernamens von Hand vorgebe, nur sind ja bekanntlich alle Benutzernamen verschieden.
Drum würde ich gerne die Umgebungsvariable %USERNAME% angeben, dazu bräuchte ich dann den Befehl
Nur leider läuft das vor die Wand, der meint dann immer:
Das Objekt unterstützt diese Eigenschaft oder Methode nicht.: "WshShell.ExpandEnviromentStrings"
Kennt Windows diesen Befehl garnicht standardmäßig?
Hallo Leute,
ich habe ein Script dass auf eine Datei unter "C:\Dokumente und Einstellungen\Benutzer\..." ändert.
Soweit so gut, alles funktioniert so lange ich den Pfad des Benutzernamens von Hand vorgebe, nur sind ja bekanntlich alle Benutzernamen verschieden.
Drum würde ich gerne die Umgebungsvariable %USERNAME% angeben, dazu bräuchte ich dann den Befehl
ExpandEnviromentStrings
Nur leider läuft das vor die Wand, der meint dann immer:
Das Objekt unterstützt diese Eigenschaft oder Methode nicht.: "WshShell.ExpandEnviromentStrings"
Kennt Windows diesen Befehl garnicht standardmäßig?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 149088
Url: https://administrator.de/contentid/149088
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
4 Kommentare
Neuester Kommentar
[OT]
Andererseits...
.. nicht nur ein "n" zuwenig kann Probleme machen, auch ein "n" zuviel.
Mein seliger Onkel Heinz-Wilfried wollte mal bei einer Partnersuche eigentlich unter "Vorlieben" gerne "Aal" eintragen, weil er den wirklich gerne isst.
Ist auch schiefgegangen.
[/OT]
Andererseits...
.. nicht nur ein "n" zuwenig kann Probleme machen, auch ein "n" zuviel.
Mein seliger Onkel Heinz-Wilfried wollte mal bei einer Partnersuche eigentlich unter "Vorlieben" gerne "Aal" eintragen, weil er den wirklich gerne isst.
Ist auch schiefgegangen.
[/OT]
Darüberhinaus macht es Sinn den Ordner nicht fest über "C:\Dokumente und Einst.." anzusprechen, sondern ihn über WshShell.SpecialFolders aufzulösen. Da es einige neuere SpecialFolders gibt, die WshShell.SpecialFolders noch nicht kennt besteht die Alternative über Konstanten und Namespaces wie in folgendem Script gezeigt.
Nicht alle Bezeichner/Pfade sind sinnvoll oder direkt verwertbar aber auf jeden Fall besser als die direkte Kodierung User-/Betriebs-/System abhängiger Pfade.
Gruß
LotPings
Nicht alle Bezeichner/Pfade sind sinnvoll oder direkt verwertbar aber auf jeden Fall besser als die direkte Kodierung User-/Betriebs-/System abhängiger Pfade.
' Teilweise Ausschnitte aus der script56.chm Hilfe-Datei
' http://wsh-vbs.de/scr56de.chm/script56.chm
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("PROCESS") ' SYSTEM, USER, PROCESS,
WScript.Echo JL("Env-Username",32) & " : " & WshSysEnv("USERNAME")
Wscript.Echo JL("Env-Username",32) & " : " & WshShell.ExpandEnvironmentStrings("%username%")
Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo JL("WSHNetwork Domäne",32)& " : " & WshNetwork.UserDomain
WScript.Echo JL("WSHNetwork Computername",32) & " : " & WshNetwork.ComputerName
WScript.Echo JL("WSHNetwork Benutzername",32) & " : " & WshNetwork.UserName
' Windows Script Host SpecialFolders Property
' http://msdn.microsoft.com/en-us/library/0ea7b5xe%28VS.85%29.aspx
aSpcFolders = Array("AllUsersDesktop", "AllUsersStartMenu", "AllUsersPrograms", _
"AllUsersStartup ", "Desktop", "Favorites", "Fonts", _
"MyDocuments", "MyPictures", "NetHood", "PrintHood ", "Programs", _
"Recent", "SendTo", "StartMenu", "Startup", "Templates")
For Each SpcFld in aSpcFolders
WScript.Echo JL("Specialfolder " & SpcFld,32) & " : " & WshShell.SpecialFolders(SpcFld)
Next
' Enumerating Special Folders
' http://technet.microsoft.com/de-de/library/ee176604%28en-us%29.aspx
aSpcFld = Array(&H1&, &H2&, &H3&, &H4&, &H5&, &H6&, &H7&, &H8&, &H9&, &Ha&, &Hb&, &Hd&, &He&, _
&H10&, &H11&, &H12&, &H13&, &H14&, &H15&, &H16&, &H17&, &H18&, &H19&, &H1a&, _
&H1b&, &H1c&, &H1f&, &H20&, &H21&, &H22&, &H23&, &H24&, &H25&, &H26&, &H27&, &H28&, _
&H2b&, &H2e&, &H2f&, &H31&, &H35&,&H36&, &H37&, &H38&, &H39&, &H3b&, &H3d&)
Set objShell = CreateObject("Shell.Application")
For Each SpecialFolder in aSpcFld
Set objFolder = objShell.Namespace(SpecialFolder)
Set objFolderItem = objFolder.Self
Wscript.Echo JL("&H" & Hex(SpecialFolder) & "&",6) & _
JL(objFolderItem.Name,28) & " : " & objFolderItem.Path
Next
Function JL(Value,Places) ' Justify Left Value within Places ------------------
If Len (Value) < Places then
JL = Left(Value & Space(Places),Places)
Else
JL=Value
End If
end Function
Gruß
LotPings