retz12
Goto Top

Ordner überprüfen vbs

Wie kann ich in einem Profilordner nach einem Ordner mittels vbs suchen.
Ich suche den Befehl,
bisher habe ich so viel geschafft.


f fso.Folderexists("C:\Dokumente und Einstellungen\%username%\Anwendungsdaten") = true then
msgbox "vorhanden"
else
msgbox "nicht vorhanden"

dies funktionier leider nicht mit dem %username%
was habe ich falsch gemacht?

Content-Key: 116842

Url: https://administrator.de/contentid/116842

Printed on: April 19, 2024 at 21:04 o'clock

Member: Nailara
Nailara May 26, 2009 at 14:54:53 (UTC)
Goto Top
Ganz so simpel ist nicht:

Es gibt eine Methode zum Ermitteln der Umgebungsvariable, die kannste statt %username% nutzen.

Es müsste aber auch einfach möglich sein, den Anmeldenamen direkt zu ermitteln, das sollte einfacher gehen....
Member: AndreasHoster
AndreasHoster May 26, 2009 at 15:47:08 (UTC)
Goto Top
Umgebungsvariablen werden in VBS nicht automatisch aufgelöst.
Aber es gibt natürlich Befehle dazu:
Set fso = CreateObject("Scripting.FileSystemObject")  
Set wshshell = CreateObject("WScript.Shell")  
If fso.Folderexists(wshshell.ExpandEnvironmentStrings("C:\Dokumente und Einstellungen\%username%\Anwendungsdaten")) = true then  
	MsgBox "vorhanden"  
else
	MsgBox "nicht vorhanden"  
End If
Mitglied: 77559
77559 May 26, 2009 at 16:00:29 (UTC)
Goto Top
Wobei für Systempfade eine Funktion SpecialFolders existiert, die in jedem Fall vorzuziehen ist.

Die Funktioniert dann nämlich auch noch unverändert mit Windows 7 die bei mir für APPDATA
C:\Users\LotPings\AppData\Roaming ergibt.

' Ausschnitte aus der script56.chm Hilfe-Datei.  z.Bsp. hier:  
' <http://wsh-vbs.de/scr56de.chm/script56.chm> herunterladen.  
Set WshShell = WScript.CreateObject("WScript.Shell")  
Set WshSysEnv = WshShell.Environment("PROCESS") ' SYSTEM, USER, PROCESS,  
WScript.Echo "Env-Username: " & WshSysEnv("USERNAME")  

WScript.Echo "Specialfolders AppData: " & WshShell.SpecialFolders("AppData")  
' AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup   
' Desktop, Favoriten, Schriftarten, Eigene Dateien, NetHood, PrintHood   
' Programme, Recent, SendTo, StartMenu, Startup, Vorlagen   

Set WshNetwork = WScript.CreateObject("WScript.Network")  
WScript.Echo "WSHNetwork Domäne = " & WshNetwork.UserDomain  
WScript.Echo "WSHNetwork Computername = " & WshNetwork.ComputerName  
WScript.Echo "WSHNetwork Benutzername = " & WshNetwork.UserName  
Member: retz12
retz12 May 26, 2009 at 17:35:51 (UTC)
Goto Top
Hallo,
Dein Script hat funktioniert.
Jetzt stehe ich aber vor einer neuen herausforderung!
Ich möchte eine Datei von einem Odner in den ("C:\Dokumente und Einstellungen\%username%\Anwendungsdaten") kopieren. Die Datei heißt genau so wie der Benutzername. müsste also auch irgendwie mit %username% funktionieren, weiß jedoch nicht wie.

Quelldatei: D:\test\%username%.html
Zielordner C:\Dokumente und Einstellungen\%username%\Anwendungsdaten
Member: AndreasHoster
AndreasHoster May 27, 2009 at 07:37:07 (UTC)
Goto Top
Zu faul zum Suchen oder zu .... zum Finden?
Set fso = CreateObject("Scripting.FileSystemObject")  
Set wshshell = CreateObject("WScript.Shell")  
fso.FileCopy wshshell.ExpandEnvironmentStrings("D:\test\%username%.html"), wshshell.ExpandEnvironmentStrings("C:\Dokumente und Einstellungen\%username%\Anwendungsdaten\%username%.html")  
Guter Startpunkt ist hier: http://msdn.microsoft.com/en-us/library/ms950396.aspx
Oder für FileSystemObject: http://msdn.microsoft.com/en-us/library/6kxy1a51(VS.85).aspx