28. juli 2004 - 22:35Der er
21 kommentarer og 1 løsning
Slette indhold af mange mapper
Hej
På vores server har vi 200 mapper liggende, som vores elever får tildelt ved logon. Mapperne hedder e1 - e200. Hvordan kan man på en llet måde slette indholdet af alle disse mapper. Der må forventes, at der båder er filer og undermapper i mapperne.
hmm kan du ikke lave en over mappe som de alle ligges ind i, og derefter søge på *.* markere dem og slette ? (virker kun hvis der ingen filer er som skal gemmes, og man selvfølgelig har administrator rettigheder)
Nej det har du jo faktisk ret i... Hmmm jeg tror jeg ville gøre noget andet, (jeg går ud fra i kører AD), oprette en OU kaldet elever, oprette et dir, f.eks elevers filer, og så markere samtlige elever i OUen, angive elevernes homepath til X: (så sharet bliver mappet til X: (i dette tilfælde)man kan markere samtlige brugere i en OU og angive deret homepath således \\server\share\%username% så opretter den selv et biblotek med brugerens navn
Kunne man ikke bare "stille sige" i e-mappernes overmappe, og slette dem med "rd /S /Q e*", og derefter genopret dem via en loop, via en batch fil? :-)
thesurfer, ja men på den måde sættes rettighederne ikke automatisk på de oprettede dirs, det sker når man opretter dem på den måde jeg skrev tidligere, og med 200 forskellige brugere er det ikke sjovt at sætte det manuelt på hver enkelt mappe :)
ok, så er det nememste at gøre som jeg tidligere skrev (altså sætte home folder i profile uder brugernes profil, derved oprettes de med de rigtige rettigheder)
Både og da bat filen IKKE sætter rettigheder, skal du selv gøre dette, og du kan nøjes med at skrive \\servernavn\sharenavn\%username% og den opretter selv bibliotekerne med de rette rettigheder, således at bruger 1 har kun adgang til sit eget bibliotek, osv.
kan man ikke bare slette "slet" og "opret" delene og få den til at gå ind i mapperne med cd "e%taeller%" og derefter slette alt og igen gå ud af mappen md cd..
dim strPath, objFSO, objFolder dim objSletMappe, objSletFil
dim objOverMappe, overmappe
strPath = "D:\Temp\e_test" ' ret stien til mappem med "e"-mapperne, UDEN "\" til sidst
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPath)
for each overmappe in objFolder.subfolders set objOverMappe = objFSO.GetFolder(overmappe.Name)
' slet mapper i "e"-mapperne: For Each objSletMappe In objOverMappe.SubFolders objFSO.DeleteFolder strPath & "\" & overmappe.Name & "\" & objSletMappe.Name,True Next
' slet filer i "e"-mapperne: For Each objSletFil In objOverMappe.files objFSO.DeleteFile strPath & "\" & objOverMappe.Name & "\" & objSletFil.Name,True Next next
set objFSO = nothing set objFolder = nothing
msgbox "Kode udført" ' beskeden kan ændres eller fjernes '------------------------------------------------------------------
husk: strPath = "D:\Temp\e_test" ' ret stien til mappem med "e"-mapperne, UDEN "\" til sidst
Det skal lige siges, at fejlen stadig opstår.. men nu kan den fortsætte. Hvis du ikke vil ha' nogen meldinger, kan du enten slette "msgbox"-linierne helt, eller kommentere dem, så de ikke afvikles (sæt et ' tegn foran linien).
gf du er ved at opfinde den dybe tallerken engang til, featuren ligger jo allerede i serveren, men ok det er dit valg, jeg dropper ud af samtalen da du alligevel vil lave det på den mest besværlige måde.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.