cumulonimbus8
Fleet Admiral
- Registriert
- Apr. 2012
- Beiträge
- 18.928
Hallo!
Vermutlich habe ich da schlicht einen Meter zu kurz gedacht oder mich verstolpert.
Über einen erprobte rekursiven Aufruf wollte ich innerhalb einer Ordnerstruktur (also dieser Ordner und alle darunter mit allem darin) den Besitz übernehmen. Was für das (rein ordnerbezogene) Setzen des Read-Only-Attributes (klar erkannt, Icons für Ordner unter XP die über XCOPY oder ROBOCOPY angelegt wurden, wobei natürlich die DeskTop.Ini mitkommt, nur das Attribut nicht…) kappt das so weit reibungslos.
Offensichtlich knallt es in Zeile 22 weil ich da wie es scheint keine Rechte auf den Ordner habe - bloß dachte ich in Zeile 12 mir die schon an Land gezogen zu haben?
Welche Bäume stehen da die verhindern, dass ich den Wald sehe?
CN8
Vermutlich habe ich da schlicht einen Meter zu kurz gedacht oder mich verstolpert.
Über einen erprobte rekursiven Aufruf wollte ich innerhalb einer Ordnerstruktur (also dieser Ordner und alle darunter mit allem darin) den Besitz übernehmen. Was für das (rein ordnerbezogene) Setzen des Read-Only-Attributes (klar erkannt, Icons für Ordner unter XP die über XCOPY oder ROBOCOPY angelegt wurden, wobei natürlich die DeskTop.Ini mitkommt, nur das Attribut nicht…) kappt das so weit reibungslos.
Code:
DIM WSHShell, WScriptShell, FSO, Argumente, Argument, QT, Meldung
SET WSHShell = WScript.CreateObject("WScript.Shell")
SET WScriptShell = WScript.CreateObject("WScript.Shell")
SET FSO = CreateObject("Scripting.FileSystemObject")
QT = CHR(34)
Argumente = Wscript.Arguments.Count
IF Argumente = 0 THEN WScript.Quit
Argument=UCASE(Wscript.Arguments(0))
REM Der Mutterordner muss aus der Iteration raus
Meldung = Argument & " (" & FSO.GetFolder(Argument).Files.Count & ")"
WSHShell.Run "TAKEOWN " & QT & Argument & QT, 7, FALSE
CALL DateienAblaufen(Argument)
REM Nun der eigentliche Lauf durch die Struktur
CALL OrdnerAbsuchen (Argument)
WSHShell.PopUp Meldung, 15, "Bearbeitet wurden:", 64 + 0
WScript.Quit
SUB OrdnerAbsuchen(LW)
DIM Ordner
DIM OrdnerName
IF FSO.GetFolder(LW & "\").SubFolders.Count > 0 THEN
FOR EACH Ordner IN FSO.GetFolder(LW & "\").SubFolders
OrdnerName = LW & "\" & Ordner.Name
Meldung = Meldung & vbCr & LW & "\" & Ordner.Name & _
" (" & FSO.GetFolder(LW & "\" & Ordner.Name).Files.Count & ")"
WSHShell.Run "TAKEOWN " & QT & LW & "\" & Ordner.Name & QT, 7, FALSE
CALL DateienAblaufen(LW & "\" & Ordner.Name)
CALL OrdnerAbsuchen(LW & "\" & Ordner.Name)
NEXT
END IF
END SUB
SUB DateienAblaufen(OD)
DIM Datei
IF FSO.GetFolder(OD).Files.Count > 0 THEN
FOR EACH Datei IN FSO.GetFolder(OD).Files
WSHShell.Run "TAKEOWN " & QT & OD & "\" & Datei.Name & QT, 7, FALSE
NEXT
END IF
END SUB
Welche Bäume stehen da die verhindern, dass ich den Wald sehe?
CN8