rotlux
Goto Top

VBS Script soll in jedem Ordner eine Ini Datei modifizieren

Hallo zusammen,

ich habe folgendes Problem

Auf unserem Profilpfad (TS) liegen die Profile aller User

Wir müssen nun in eine Ini welche in jedem Userprofil liegt einen Eintrag erweitern

Schreiben in die Ini Datei funktioniert

Aber wie kann ich es per VBS realisieren, dass
in jedem Ordner nach der Datei gesucht wird (Datei liegt immer am selben Platz im Userprofil)
Ich weiß den Pfad

\\SERVER\SHARE\ --- \ORDNER\DATEI.INI

--- = der Username

den weiß ich nicht
Sollte aber auch egal sein

Script soll in JEDEM dieser Ordner nach der Ini suchen und am Schluß den Eintrag erweitern

Wie kann ich das machen?
Danke für euere Hilfe
Marcel

Content-Key: 162212

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

Printed on: April 27, 2024 at 04:04 o'clock

Mitglied: 60730
60730 Mar 08, 2011 at 08:20:01 (UTC)
Goto Top
Moin,

für "sowas" würde ich ja nicht zu VBS greifen - das kann "Bätsch" auch....

Demo1:
for /r \\server\profil\ %a in (.) do echo %a

Demo2:
for /r \\server\profil\ %a in (DATEI.INI) do echo %a

Demo3:
for /r \\server\profil\ %a in (DATEI.INI) do findstr "Eintrag" %a && echo Eintrag schon vorhanden

Demo4:

Spiel damit mal etwas rum und suche die die Hilfe zu jedem - dir noch unbekannten - Befehl in der Dosbox.

Gruß
Member: bastla
bastla Mar 08, 2011 at 09:13:00 (UTC)
Goto Top
Hallo rotlux!

Da es hier ja nur um eine Ordnerebene (die "unbekannten" User) geht, genügt eine einfache "For Each"-Schleife:
Set fso = CreateObject("Scripting.FileSystemObject")  
For Each SubFolder In fso.GetFolder("\\SERVER\Share").SubFolders  
    Ausgabe = Ausgabe & vbCrLf & "Bearbeite " & SubFolder.Path  
Next
WScript.Echo Mid(Ausgabe, 3)
Als Demo werden hier nur die gefundenen Pfade angezeigt - Deine bestehende Veraarbeitung kannst Du dann ersatzweise entweder als Unterprogrammaufruf oder unmittelbar in die Schleife einbinden ...

Grüße
bastla
Member: rotlux
rotlux Mar 08, 2011 at 15:39:50 (UTC)
Goto Top
Hallo Bastla,

So sieht mein Script jetzt aus
_______________________________________________________________________________________________________________________________________________________________________________________________________________
'Variabendefinition
Option Explicit
Dim stradd1, stradd2, stradd3, strFile, strServerPath, strini, fso, SubFolder
Set fso = CreateObject("Scripting.FileSystemObject")

'zu füllender Inhalt
stradd1 = "Text 1"
stradd2 = "Text 2"
stradd3 = "Text 3"

strServerPath = "E:\Data\TSHome\"
strini = "\Ordner\Bearbeitemich.ini"

For Each SubFolder In fso.GetFolder(strServerPath).SubFolders
ModifyNotesIni strini
Next

'---------------------------------- FUNKTIONEN ----------------------------------
Function ModifyNotesIni(strFile)
Set oFile = fso.OpenTextFile(strFile,8,true)
oFile.WriteLine stradd1
oFile.WriteLine stradd2
oFile.WriteLine stradd3
err.Clear
oFile.close
End Function
_______________________________________________________________________________________________________________________________________________________________________________________________________________

Jetzt kommt "Der Pfad wurde nicht gefunden)
bei Zeile (37) Set oFile = fso.OpenTextFile(strFile,8,true)
Mitglied: 60730
60730 Mar 08, 2011 at 15:45:10 (UTC)
Goto Top
moin,

auch wenn ich nicht der Bastla bin...

  • Bitte füge die Code Blöcke um dein Script ein - denn so kann man das nicht richtig lesen.
(der Parser vom Forum verändert zuviel)

  • Dann fällt auf den ersten Blick auf - und das kann auch vom Forenparser kommen:
strServerPath = "E:\Data\TSHome\"  
strini = "\Ordner\Bearbeitemich.ini"   
kann ja nicht stimmen. - Oder kennst du einen Pfad
E:\Data\TSHome\\Ordner\Bearbeitemich.ini

Gruß
Member: bastla
bastla Mar 08, 2011 at 15:49:25 (UTC)
Goto Top
Halo rotlux!

Die Zeile 15 (zumindest der hier geposteten - übrigens leicht abzulesen, wenn Du T-Mos Rat hinsichtlich der befolgst) sollte eher so aussehen:
ModifyNotesIni SubFolder.Path & strini
Kleines stilistisches Detail am Rande: Da ja kein Rückgabewert erwartet / benötigt wird, wäre "ModifyNotesIni" bei mir keine "Function", sondern ein "Sub" ...

Grüße
bastla
Member: rotlux
rotlux Mar 10, 2011 at 07:51:52 (UTC)
Goto Top
super, so hat es funktioniert
vielen Dank