josi Δημοσ. 6 Οκτωβρίου 2016 Δημοσ. 6 Οκτωβρίου 2016 Καλησπέρα σας. Έχω το εξής πρόβλημα. Έχω έναν φάκελο στον υπολογιστή μου και μέσα έχει κάπου στα 10.000 pdf. Το καθένα pdf έχει όνομα έναν 5 ψηφίο αριθμό. Τι θέλω να κάνω τώρα. Θέλω να δημιουργήσω τόσους φακέλους όσα και τα αρχεία μου και ο κάθε φάκελος να έχει ίδιο όνομα με το pdf που θλέω να τοποθετησω μεσάς . Υπάρχει κάποιος τρόπος να το κάνω μέσα από τα Windows ή έστω μέσο κάποιου προγράμματος, ακόμη και μέσω εντολής της γραμμής εντολών ms Dos συμβιβάζομαι. Στην διάθεση μου έχω διάφορους υπολογιστές με τα εξής λυτουργικα : windows xp, vista, 7, 10 και Mac OS. Οποιαδήποτε βωηθια θα ήταν ευπρόσδεκτη. Ευχαριστώ.
papp0us Δημοσ. 6 Οκτωβρίου 2016 Δημοσ. 6 Οκτωβρίου 2016 Files2folder http://skwire.dcmembers.com/wb/pages/software/files-2-folder.php Τώρα το έβαλα σε WIndows 7, το δοκίμασα και το έκανε άψογα-
josi Δημοσ. 6 Οκτωβρίου 2016 Μέλος Δημοσ. 6 Οκτωβρίου 2016 Φιλαράκι σε ευχαριστώ πάρα πολύ. Με γλητοσες από πααααραπολες ώρες δουλειάς. Θα το δοκιμάσω αύριο.
micos000 Δημοσ. 7 Οκτωβρίου 2016 Δημοσ. 7 Οκτωβρίου 2016 (επεξεργασμένο) Εναλλακτικά, μπορείς να το κάνεις και χωρίς να στήσεις κανένα πρόγραμμα. Πάρε το παρακάτω αρχείο (zip) και αποσυμπίεσε το στον φάκελο που έχεις τα pdf. Τρέξτο και περίμενε... files2folder.zip Αυτό που κάνει είναι να τρέχει μια εντολή for για όλα τα pdf που θα βρει, να δημιουργεί έναν φάκελο με το ίδιο όνομα και να μεταφέρει στον φάκελο το pdf. Είναι πολύ απλό και μπορείς να το αλλάξεις (δεξί κλικ->επεξεργασία) για ότι αρχείο θέλεις αλλάζοντας στη 2η γραμμή το pdf. Παρακάτω και το σκριπτ. Επεξηγήσεις στα μηνύματα #7 και #11 παρακάτω. @echo off echo MOVE FILES TO FOLDERS WITH THE SAME NAME v3 echo. set cnt=0 set /p ext="DOSE THN KATALHKSH: " for %%i in (*.%ext%) do ( md "%%~ni" set /a cnt+=1 move "%%i" "%%~ni" >:null ) if %cnt%==0 echo DE BRE8HKAN ARXEIA ME THN KATALHKSH ".%ext%" @echo DHMIOYRGH8HKAN %cnt% FAKELOI. pause EXIT Επεξ/σία 10 Οκτωβρίου 2016 από micos000 2
josi Δημοσ. 7 Οκτωβρίου 2016 Μέλος Δημοσ. 7 Οκτωβρίου 2016 Σας ευχαριστώ πάρα πολύ. Θα το δοκιμάσω αυτές τις μέρες.
thepoint Δημοσ. 9 Οκτωβρίου 2016 Δημοσ. 9 Οκτωβρίου 2016 Εναλλακτικά, μπορείς να το κάνεις και χωρίς να στήσεις κανένα πρόγραμμα. Πάρε το παρακάτω αρχείο (zip) και αποσυμπίεσε το στον φάκελο που έχεις τα pdf. Τρέξτο και περίμενε... Αυτό που κάνει είναι να τρέχει μια εντολή for για όλα τα pdf που θα βρει, να δημιουργεί έναν φάκελο με το ίδιο όνομα και να μεταφέρει στον φάκελο το pdf. Είναι πολύ απλό και μπορείς να το αλλάξεις (δεξί κλικ->επεξεργασία) για ότι αρχείο θέλεις αλλάζοντας στη 2η γραμμή το pdf. file2folder.zip Παρακάτω και το σκριπτ. @echo off set ext=pdf for %%i in (*.%ext%) do ( @md %%~ni @move %%i %%~ni >:null ) Δημιούργησα ένα φάκελο στην επιφάνεια εργασίας αντέγραψα εκεί 10 pdf από τα έγραφα και έβαλα το script όμως επειδή σε ορισμένα η ονομασία των pdf έχει κενό μου βγάζει παραπάνω φακέλους όπως τα βλέπω ένα για κάθε λέξη περίπου καθώς και μερικά κενά από pdf μέσα φακέλους. Υποθέτω το πρόβλημα είναι αυτό γιατί αυτά με τη κάτω γραμμή _που ενώνει όλη την ονομασία βγαίνουν σωστά. Υπάρχει τρόπος να αλλάξει ο κώδικας για να δουλεύει με ολόκληρη την ονομασία σαν ενιαία ανεξάρτητα της διάταξης της ονομασίας; Και ένα οδηγό για dummies αν έχεις πρόχειρο.
micos000 Δημοσ. 9 Οκτωβρίου 2016 Δημοσ. 9 Οκτωβρίου 2016 Ναι, είναι πολύ απλό και λάθος μου που δεν το πρόβλεψα, απλά ο josi είχε ζητήσει να το κάνει σε αρχεία με όνομα πέντε νούμερα. Η διόρθωση είναι εύκολη, απλά κάνε δεξί κλικ στο bat->επεξεργασία και βάλε τις μεταβλητές σε "" οπότε τα περνάνε και τα αρχεία με κενό στο όνομα τους. Δηλαδή, ο νέος κώδικας που θα δουλεύει και σε αρχεία με κενά στο όνομα τους, θα είναι ως εξής: @echo off set /p ext="DOSE THN KATALHKSH: " for %%i in (*.%ext%) do ( md "%%~ni" move "%%i" "%%~ni" >:null ) Όταν λες 'οδηγός' τι εννοείς; Θέλεις να αναλύσω τις γραμμές; Ένα καλό site με αναλυτικές οδηγίες για όλες τις εντολές είναι εδώ και ένα άλλο είναι εδώ. Επίσης, αν δώσεις στο cmd μια εντολή με παράμετρο /? σου επιστρέφει μια βοήθεια για την εντολή με όλες τις παραμέτρους και κάποια παραδείγματα. Για παράδειγμα η εντολή cd /? θα σου εμφανίσει βοήθεια για την εντολή cd (change directory). Όσο για ο σκριπτάκι... @echo off Απενεργοποιεί την εμφάνιση κάποιον μηνυμάτων στην κονσόλα set ext=pdf Ορίζει την μεταβλητή ext ώστε να έχει την παράμετρο pdf. Αυτό το κάνω για να είναι ποιο καθαρό το σκριπτάκι και να ξέρω ποιες παραμέτρους χρησιμοποιώ ώστε να μην τις ψάχνω/αλλάζω μια-μια μέσα στο σκρίπτ. Αυτό είναι μικρό αλλά φαντάσου να είναι 50 γραμμές και να πρέπει να αλλάξω την παράμετρο pdf σε 7 εντολές! Αυτή η εντολή θα μπορούσε να γίνει και ως εξής: set /p ext="DOSE THN KATALHKSH: " Οπότε θα περίμενε από τον χρήστη να δώσει την κατάληξη που θέλει. Αυτό όμως θα δημιουργούσε λάθη αν δινόταν λάθος κατάληξη γι αυτό και την παρέλειψα. Αν θέλεις δοκίμασε το στο δικό σου για να γίνει ποιο γενικό το σκριπτάκι και να δουλεύει στην κατάληξη που θα του δώσεις εσύ χωρίς να πρέπει να επεξεργάζεσαι το σκτιπτ κάθε φορά. Βασικά το άλλαξα και στο σκρίπτ ήδη. for %%i in (*.%ext%) do ( Εδώ είναι η 'μαγική' for. Είναι μια πολύ δυνατή εντολή και στο σκριπτάκι διαβάζει όλα τα αρχεία στον τρέχοντα φάκελο (θα μπορούσε να διαβάζει και στους υποφάκελους με την παράμετρο /R), βρίσκει τα αρχεία με την κατάληξη .pdf (η ext Που όρισα στην αρχεί), αποθηκεύει το πρώτο που θα βρει στην μεταβλητή 'i' και περιμένει να της πούμε τι να κάνει. Τα % ορίζουν ότι αυτό που ακολουθεί είναι μεταβλητή και όχι εντολή. Το διπλό %% στο i είναι αναγκαίο όταν η for εκτελείται μέσα σε σκρίπτ, ενώ αν την εκτελέσουμε απευθείας στο cmd βάζουμε ένα %. Τα % μπροστά και πίσω από το ext ορίζουν ότι αυτό που βρίσκεται ανάμεσα τους είναι μεταβλητή. Η παρένθεση στο τέλος δηλώνει ότι θα ακολουθήσουν αρκετές εντολές και όχι μία. Αν ήταν π.χ. να πας εμφανίσει μόνο το όνομα των αρχείων δεν χρειαζόταν η παρένθεση και θα ακολουθούσε μόνο μια echo "%%i" και τέλος. md "%%~ni" Η md δημιουργεί έναν φάκελο με το όνομα του αρχείου χωρίς την κατάληξη. Αυτό γίνεται βάζοντας το '~n' μπροστά από την μεταβλητή 'i', το οποίο ανήκει στην for και ορίζει ότι να κοπεί η τελεία και η κατάληξη από την 'i'. Αν το άφηνα απλώς '%%i' ο φάκελος θα είχε όλο το όνομα του αρχείου, μαζί με την κατάληξη. move "%%i" "%%~ni" >:null Η move μεταφέρει το αρχείο %%i στον φάκελο %%~ni, δηλαδή στον φάκελο που δημιουργήθηκε πριν με το όνομα του αρχείου, χωρίς την κατάληξη. Το '>:NULL' στο τέλος στέλνει όλα τα μηνύματα της move στην συσκευή :NULL που είναι μαι εικονική συσκευή εξόδου που δεν οδηγεί πουθενά. Είναι ένα trick για να μην εμφανίζονται τα μηνύματα εξόδου της εντολής. Αν δεν το έβαζα θα έβλεπες στην κονσόλα συνεχόμενα μηνύματα "Το αρχείο ..... μετακινήθηκε'. και αυτό θα καθυστερούσε την εκτέλεση. ) Η παρένθεση αυτή ορίζει στον Interpreter ότι οι εντολές της for έφτασαν στο τέλος τους και θα πρέπει να επιστρέψει στην αρχική for για το επόμενο αρχείο.
thepoint Δημοσ. 9 Οκτωβρίου 2016 Δημοσ. 9 Οκτωβρίου 2016 Ευχαριστώ για τις πληροφορίες. Ναι ένα free pdf για να το διαβάζω στο book reader. Δουλεύει ακόμα και αν αφαιρέσεις το κενό αρχείο κειμένου που δημιουργεί ακόμα και αν προσθέσεις ή αφαιρέσεις pdf λέω να το κρατήσω στο καλάθι των αχρήστων, φαίνεται τυπική η παρουσία του ή για άλλου τύπου έξοδο αποτελεσμάτων πιθανολογώ.
micos000 Δημοσ. 9 Οκτωβρίου 2016 Δημοσ. 9 Οκτωβρίου 2016 Ευχαριστώ για τις πληροφορίες. Ναι ένα free pdf για να το διαβάζω στο book reader. Κάτι τέτοιο ή τέτοιο δηλαδή; Δουλεύει ακόμα και αν αφαιρέσεις το κενό αρχείο κειμένου που δημιουργεί ακόμα και αν προσθέσεις ή αφαιρέσεις pdf λέω να το κρατήσω στο καλάθι των αχρήστων, φαίνεται τυπική η παρουσία του ή για άλλου τύπου έξοδο αποτελεσμάτων πιθανολογώ. Σόρυ, αλλά δεν κατάλαβα τίποτα από αυτό.
thepoint Δημοσ. 10 Οκτωβρίου 2016 Δημοσ. 10 Οκτωβρίου 2016 @micos000 Τώρα το ανακάλυψα όταν εκτελέσεις το bat χωρίς δεδομένα μέσα στο φάκελο δημιουργεί ένα κενό έγγραφο κειμένου. Αυτό με μπέρδεψε άρα παράγει ένα έγγραφο κειμένου κενό για έξοδο όταν δεν βρει κάτι στο φάκελο οτιδήποτε όχι pdf για παράδειγμα. Απλά πειραματίστηκα το έστειλα στο κάδο απορριμάτων και εξακολουθούσε να λειτουργεί το πρόγραμμα δεν ήξερα αν είναι απαραίτητο και με παίδεψε. Ένα bug. Θα σου το κάνει με κενό φάκελο πάω στοίχημα!
micos000 Δημοσ. 10 Οκτωβρίου 2016 Δημοσ. 10 Οκτωβρίου 2016 Όχι, δε δημιουργεί τίποτα τα σκριπτ. Αν δε βρει αρχεία στον φάκελο δεν κάνει τίποτα και απλά κλείνει και αν έκανε κάτι, θα δημιουργούσε έναν φάκελο χωρίς όνομα και όχι έγγραφο. Αν η 'for' δε βρει κάτι που να ταιριάζει με αυτό που της έδωσες μετά την 'in' δεν μπαίνει καν στη loop και τερματίζει. Κάτι λάθος θα έχεις κάνει. Ξαναέλεγξε το και κάνε copy-paste τις εντολές από το τελευταίο μήνυμα. EDIT: Πάμε για v3 έκδοση του σκριπτ. @echo off echo MOVE FILES TO FOLDERS WITH THE SAME NAME v3 echo. set cnt=0 set /p ext="DOSE THN KATALHKSH: " for %%i in (*.%ext%) do ( md "%%~ni" set /a cnt+=1 move "%%i" "%%~ni" >:null ) if %cnt%==0 echo DE BRE8HKAN ARXEIA ME THN KATALHKSH ".%ext%" @echo DHMIOYRGH8HKAN %cnt% FAKELOI. pause EXIT Πλέον βγάζει μήνυμα αν δε βρεθούν αρχεία με την κατάληξη που ορίστηκε, μετράει πόσοι φάκελοι δημιουργήθηκαν (με την μεταβλητή 'cnt' και την εντολή set /a που ορίζει ότι αυτό που ακολουθεί είναι αριθμητική ή λογική έκφραση και να προχωρήσει σε πράξη, το 'cnt+=1' δηλώνει ότι στη μεταβλητή cnt θα προστίθεται 1 κάθε φορά που θα δημιουργείται ένας φάκελος) και εμφανίζει το αποτέλεσμα στο τέλος.
headbanger Δημοσ. 10 Οκτωβρίου 2016 Δημοσ. 10 Οκτωβρίου 2016 ωραίος ο micos , εγώ θα δοκίμαζα και Powershell μιας και ειναι πιο "ιν"
micos000 Δημοσ. 10 Οκτωβρίου 2016 Δημοσ. 10 Οκτωβρίου 2016 Το αποφεύγω για τέτοιες απλές διαδικασίες γιατί δεν είναι ενσωματωμένο στα xp, βασίζεται σε .net και στα 10άρια που είμαι μπορεί κάποια πράγματα να μη δουλεύουν σε 7άρια και xp με ps2. 1
thepoint Δημοσ. 11 Οκτωβρίου 2016 Δημοσ. 11 Οκτωβρίου 2016 Σε ευχαριστώ για το χρόνο σου κατάλαβα ότι το δεύτερο έγγραφο το δημιουργεί όταν κάνω δεξί κλικ δημιουργία > έγγραφο κειμένου επικόλληση του bat και μετά το αποθήκευση ως αφήνει και ένα "νέο έγγραφο κειμένου" πάνω στην επιφάνεια εργασίας εκτός του bat.το όποιο όταν το είχα μέσα στο φάκελο γιατί έκανα την αποθήκευση μέσα στο φάκελο απευθείας και όχι στην επιφάνεια εργασίας νόμιζα ότι είχε δημιουργηθεί από την ανυπαρξία έστω και ενός pdf My mind bug. Τέλια. Τρέχοντας και τη v3.0 όπως τα λες, να είσαι καλά.
micos000 Δημοσ. 12 Οκτωβρίου 2016 Δημοσ. 12 Οκτωβρίου 2016 Από τον josi όμως δεν είχαμε κανένα νέο. Έκανε αυτό που ήθελε τελικά;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα