Προς το περιεχόμενο

Script για άδειασμα φακέλων


vasal

Προτεινόμενες αναρτήσεις

Δημοσ.

Yπάρχει τρόπος να αδειάζω directories με κάποιο script?

Δηλαδή στο φάκελο D:\users\<username>

 

να διαγράφονται όλα τα αρχεία που περιέχονται, αλλά οι φάκελοι <username> να μένουν στη θέση τους.

 

Kάποιο έτοιμο σκριπτάκι ίσως;

 

 

Ευχαριστώ.

Βασίλης

Δημοσ.

Εάν έχει linux, άνοιξε μια κονσόλα, πήγεναι στην τοποθεσία που θες με cd /που/θες/να/πας

 

και μετά εκτελείς την εξής γραμμή:

for i in `ls -F | grep /`; do (cd $i; echo $i; rm -fr *); done

 

το "ls -F | grep /" σου δείχνει ποια directory υπάρχουν εκεί που είσαι και το rm -fr * σβήνει τα πάντα, αφού πρώτα έχει μπει σε κάθε directory.

Δημοσ.

Αντιγράφεις τα παρακάτω στο notepad, το σώζεις με κατάληξη .vbs και πρόσεχε πολύ στη χρήση του.

 

>
' Διαγράφει όλα τα αρχεία από τον φάκελο που επιλέγει ο χρήστης καθώς και τα
' αρχεία των υποφακέλων, χωρίς να πειράζει τη δομή των φακέλων. 
' Προσοχή read-only αρχεία διαγράφονται χωρίς προειδοποίηση
'
main

' entry point
function main()
dim strf
' εισαγωγή χρήστη
strf = GetFolder
if strf = "" then
	exit function
end if
' επιβεβαίωση
ret = MsgBox("Όλα τα αρχεία στον φάκελο '" & strf & _
      "' και στους υποφακέλους θα διαγραφούν", 1,"ΔΙΑΓΡΑΦΗ ΑΡΧΕΙΩΝ?")
if (ret = 1) then
	' προχωράμε
	Delall strf
end if
end function

' Εμφανίζει τον διάλογο επιλογής φακέλου και επιστρέφει το path του
' φακέλου που επιλέχθηκε. Αν ο χρήστης πατήσει άκυρο στο διάλογο, επιστρέφει
' κενό string
function GetFolder()
dim shell, ofolder, ofi
set shell = CreateObject("Shell.Application")
set ofolder = shell.BrowseForFolder(0, "Επιλέξτε φάκελο", 0, 17)
if (ofolder is nothing) then
	GetFolder = ""
else
	set ofi = ofolder.Self
	GetFolder = ofi.Path
end if
set ofi = nothing
set ofolder = nothing
set shell = nothing
end function

' Διαγράφει τα αρχεία του φακέλου strFolder καθώς και τα 
' αρχεία των υποφακέλων του ...
function Delall(strFolder)
dim fso
set fso = CreateObject("Scripting.FileSystemObject")
RDel fso.GetFolder(strFolder)
set fso = nothing
end function

' ... αναδρομικά
function RDel(ofolder)
dim osubf, ofile
for each osubf in ofolder.SubFolders
	RDel(osubf)
next
for each ofile in ofolder.Files
	ofile.Delete(true)  ' και τα read-only
next
end function

Δημοσ.

Ανιξε ενα Nodepade (txt) και γραψε

>
CD D:\users\<username>\
del /q /s *.*

save like .bat file

οπου *.* <ονομα>.<τυπος> μπωρεις να βαλει ητε συγγεκριμενο τυπο ητε ονομα

Δημοσ.
Ανιξε ενα Nodepade (txt) και γραψε

>
CD D:\users\<username>\
del /q /s *.*

save like .bat file

οπου *.* <ονομα>.<τυπος> μπωρεις να βαλει ητε συγγεκριμενο τυπο ητε ονομα

 

Καλώς ήρθες στο insomnia.

Μάλλον δεν κατάλαβες καλά τι ζητάει.

Δημοσ.
Καλώς ήρθες στο insomnia.

Μάλλον δεν κατάλαβες καλά τι ζητάει.

Για να τα οργανονει σε φακελους δεν θα εχει και πολλους χρηστες.

Τωρα αν κανω λαθος και εχει πολλους ... τι να πω?

Ας παρει μια Database SQL ή εστω Accses.

Μια ηδεα ερηξα στο τραπεζι.

Δημοσ.
Για να τα οργανονει σε φακελους δεν θα εχει και πολλους χρηστες.

Τωρα αν κανω λαθος και εχει πολλους ... τι να πω?

Ας παρει μια Database SQL ή εστω Accses.

Μια ηδεα ερηξα στο τραπεζι.

 

 

Eίναι δυστυχώς 40-50 και κατά καιρούς τροποποιούνται (όχι πολύ συχνά).

Αυτό με την Access/SQL είναι σχετικό;

 

Thanx πάντως...

Δημοσ.

Η λυση του bilco δεν σε καλυψε?

 

Θες στο καθε user folder να σβηνονται τα αρχεια απο κατω του αλλα τα subfolders του καθε χρηστη να παραμενουν η μπορουν να σβηστουν και αυτα?

 

Αν δεν σε πειραζει να σβηνονται τοτε μια απλη λυση ειναι ενα σκριπτ που

Πριν σβησε οτιδηποτε κανει ενα dir να δει τι user folders υπαρχουν.

Σωζει τα αποτελεσματα σε ενα τχτ

Σβηνει τα παντα, οπως εδειξε ο Ευγενιος

Μετα ξαναδημιουργει τα user folders και σβηνει το τχτ

 

Οχι οτι αυτη η λογικη δεν μπορει να επεκταθει για να διατηρησει ολη τη δομη των φακελων ων χρηστων, αλλα δεν θα ειναι πια τοσο απλο για ενα batch file. Απ΄οτι φαινεται αυτο εχει κανει ο bilco σε vbs.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...