Brauche Unterztützung bei einen VB Script das prüft ob eine Datei vorhanden ist und gegebenfalls umnennt.
Hallo,
ich komme mit meinen VB Script nicht mehr weiter. Das Script soll überprüfen ob im Pfad %Userprofile%\Lokale Einstellungen\Anwendungsdaten\Lotus\Notes\Data eine *.id Datei befindet. Wenn dies der Fall ist, soll im Ordner %Homedrive%\Programme\lotus\notes die Datei "Notes.ini" in "Notes.ini.old" umnennen.
Alles unter Windows XP SP2.
Kann mir hier jemand weiterhelfen. Danke
Soweit bin ich schon gekommen.
Gruß
Thomas
[Edit Biber] Muss das denn sein, dass er "gegebenenfalls umnennt"??
WTF ist an dem Wort "um-be-nen-nen" den so schwierig? [/Edit]
ich komme mit meinen VB Script nicht mehr weiter. Das Script soll überprüfen ob im Pfad %Userprofile%\Lokale Einstellungen\Anwendungsdaten\Lotus\Notes\Data eine *.id Datei befindet. Wenn dies der Fall ist, soll im Ordner %Homedrive%\Programme\lotus\notes die Datei "Notes.ini" in "Notes.ini.old" umnennen.
Alles unter Windows XP SP2.
Kann mir hier jemand weiterhelfen. Danke
Soweit bin ich schon gekommen.
' 1. Wo befindet sich die *.id Datei? => Sub id:
' C:\Dokumente und Einstellungen\%Username%\Lokale Einstellungen\Anwendungsdaten\Lotus\Notes\Data
' Möglichkeiten:
' A) Die Datei *.id befindet sich im o.g. Verzeichnis => Sub ini
' B) Die Datei *.id befindet sich nicht im o.g. Verzeichnis => Sub Exit
'
'
'
On Error Resume Next
'============================================================================================
' Deklarationsteil Globale Variablen
'============================================================================================
Set oShell = CreateObject("Wscript.Shell")
strUserProfile = oShell.ExpandEnvironmentStrings("%Userprofile%")
strHomedrive = oShell.ExpandEnvironmentStrings("%Homedrive%")
'============================================================================================
' Sub id
'============================================================================================
Sub id()
Dim vartargetdata 'ID file
FulltextSearch ""+strUserProfile+"\Lokale Einstellungen\Anwendungsdaten\Lotus\Notes\Data", "*.id", targetdata
If vartargetdata = "*.id" Then
call ini()
Else
call benden()
End If
end sub
'============================================================================================
' Sub ini
'============================================================================================
Sub ini()
Dim vartargetdata 'inifile
FulltextSearch ""+strHomedrive+"\Programme\Lotus\Notes", "notes.ini", targetdata
If vartargetdata = "notes.ini" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile ""+strHomedrive+"\Programme\Lotus\Notes\notes.ini" , ""+strHomedrive+"\Programme\Lotus\Notes\notes.ini.old"
Else
call benden()
End If
end sub
'============================================================================================
' Sub Exit
'============================================================================================
Sub benden()
end sub
Gruß
Thomas
[Edit Biber] Muss das denn sein, dass er "gegebenenfalls umnennt"??
WTF ist an dem Wort "um-be-nen-nen" den so schwierig? [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92197
Url: https://administrator.de/forum/brauche-unterztuetzung-bei-einen-vb-script-das-prueft-ob-eine-datei-vorhanden-ist-und-gegebenfalls-umnennt-92197.html
Ausgedruckt am: 23.12.2024 um 08:12 Uhr
2 Kommentare
Neuester Kommentar
Hallo viper80!
Etwas eingedampft (und ungetestet) könnte das etwa so aussehen:
Die Function "FulltextSearch" (warum auch immer sie so heißen soll) liefert den Namen der ersten Datei des als Argument übergebenen Ordners, welche dem Suchmuster (vom Dateiende aus betrachtet) entspricht (gefunden würde dadurch allerdings etwa auch eine "#notes.ini" - allerdings lässt sich die Function natürlich noch entsprechend erweitern, um Suche nach Einzeldatei oder nach Dateien eines bestimmten Typs unterscheiden zu können).
Grüße
bastla
P.S.: In Deinem Entwurf wird das Sub "Id" nicht aufgerufen und daher auch nicht ausgeführt.
Etwas eingedampft (und ungetestet) könnte das etwa so aussehen:
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")
strUserProfile = oShell.ExpandEnvironmentStrings("%Userprofile%")
strHomedrive = oShell.ExpandEnvironmentStrings("%Homedrive%")
strDataPath = strUserProfile & "\Lokale Einstellungen\Anwendungsdaten\Lotus\Notes\Data"
strDataPattern = ".id"
strIniPath = strHomedrive & "\Programme\Lotus\Notes"
strIniFile = "notes.ini"
strIniOld = "notes.ini.old"
If FulltextSearch(strDataPath, strDataPattern) <> "" Then
Ini
Else
Beenden
End If
'-- Ende Hauptprogramm --
Sub Ini
If FulltextSearch(strIniPath, strIniFile) <> "" Then
If oFSO.FileExists strIniPath & "\" & strIniOld Then objFSO.DeleteFile strIniPath & "\" & strIniOld
oFSO.MoveFile strIniPath & "\" & strIniFile, strIniPath & "\" & strIniOld
End Sub
Sub Beenden
End Sub
Function FulltextSearch(strPath, strPattern)
F = ""
L = Len(strPattern)
P = LCase(strPattern)
If oFSO.FolderExists(strPath) Then
For Each File In oFSO.GetFolder(strPath).Files
If LCase(Right(File.Name, L)) = P Then
F = File.Name
Exit For
End If
Next
End If
FulltextSearch = F
End Function
Grüße
bastla
P.S.: In Deinem Entwurf wird das Sub "Id" nicht aufgerufen und daher auch nicht ausgeführt.