Nikos_Vita Δημοσ. 31 Μαΐου 2009 Μέλος Δημοσ. 31 Μαΐου 2009 ΣΕ ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ!...! Πραγματικά πολύ καλή δουλειά και χρήσιμο το script. Μία τελευταία ερώτηση...αν γίνεται φυσικά!...! Μπορείς στο script να προσθέσεις την δυνατότητα στα folder τα αρχεία να μπαίνουν αλφαβητικά και όχι τυχαία; Εχω π.χ. στην αρχή του κάθε Mp3 αύξοντα αριθμό και παρατηρώ ότι τα μοιράζει μπερδεμένα σε κάθε folder που φτιάχνει...
parsifal Δημοσ. 31 Μαΐου 2009 Δημοσ. 31 Μαΐου 2009 Χμμμ, σε εμένα δεν τα μοιράζει τυχαία, αλλά απολύτως αλφαβητικά. Μήπως μπορείς να αναπαράγεις το πρόβλημα με ένα σετάκι λίγων αρχείων (π.χ. πέντ' έξι) και να δώσεις τα ακριβή filenames τους για να δω τί συμβαίνει και στο δικό μου σύστημα... ;
Nikos_Vita Δημοσ. 31 Μαΐου 2009 Μέλος Δημοσ. 31 Μαΐου 2009 Χμμμ, σε εμένα δεν τα μοιράζει τυχαία, αλλά απολύτως αλφαβητικά. Μήπως μπορείς να αναπαράγεις το πρόβλημα με ένα σετάκι λίγων αρχείων (π.χ. πέντ' έξι) και να δώσεις τα ακριβή filenames τους για να δω τί συμβαίνει και στο δικό μου σύστημα... ; Θα το κάνω αλλά θα περιμένεις μέχρι αύριο γιατί θα έχω ξανά ίντερνετ αύριο... Σε ευχαριστώ θερμά...
Nikos_Vita Δημοσ. 1 Ιουνίου 2009 Μέλος Δημοσ. 1 Ιουνίου 2009 Καλησπέρα! Στο συννημένο αρχείο έχω ακριβώς την διάσπαση που έχω κάνει. Τα folders είναι: 31/05/2009 19:54 <DIR> mp3_1 31/05/2009 19:54 <DIR> mp3_2 31/05/2009 19:54 <DIR> mp3_3 31/05/2009 19:54 <DIR> mp3_4 31/05/2009 19:54 <DIR> mp3_5 31/05/2009 19:54 <DIR> mp3_6 31/05/2009 19:54 <DIR> mp3_7 αλλά όπως βλέπεις το split έχει βάλει μπερδεμένα τα Mp3 στους καταλόγους... Τα MP3 έχουν την μορφή XYZ_XY_filename.mp3 όπου XYZ αριθμοί αύξοντες π.χ. 168_01. Alex C. Feat. Y-ass - Du Hast Den Schoensten Arsch Der Welt.mp3 dir.zip
parsifal Δημοσ. 1 Ιουνίου 2009 Δημοσ. 1 Ιουνίου 2009 Νίκο, θα προσπαθήσω να δημιουργήσω αρχεία μηδενικού μεγέθους με τα ίδια ακριβώς filenames για να αναπαράγω το πρόβλημα. Για να διευκολυνθώ στη δημιουργία τους, γίνεται να ανεβάσεις ένα ακόμη directory listing μόνο με τα filenames; Π.χ.: >cd F:\Mixes Jun2008\usb f: dir *.mp3 /s/b > mp3list.txt
Nikos_Vita Δημοσ. 1 Ιουνίου 2009 Μέλος Δημοσ. 1 Ιουνίου 2009 Ελπίζω να είναι σωστό το DIR που επισυνάπτω ... Αν δεν είναι πες μου και θα το επισυνάψω αύριο όμως γιατί τώρα πρέπει να αποχωρήσω... Σε ευχαριστώ πολύ. Η βοήθειά σου είναι πραγματική πολύτιμη... mp3list.zip
parsifal Δημοσ. 2 Ιουνίου 2009 Δημοσ. 2 Ιουνίου 2009 Δεν έβγαλα άκρη! Σε εμένα, το script χώρισε τα αρχεία με αλφαβητική σειρά. Στον κατάλογο mp3_1 τα αρχεία από 001_τάδε.mp3 μέχρι 099_τάδε.mp3, στον κατάλογο mp3_2 τα αρχεία από 100_τάδε.mp3 μέχρι 198_τάδε.mp3 και ούτω καθεξής. Μήπως την ώρα που τρέχει το script έχεις ανοικτό κάποιο παράθυρο Windows Explorer που δείχνει στον κατάλογο με τα αρχεία mp3; Αν ναι, κλείσε το.
Nikos_Vita Δημοσ. 2 Ιουνίου 2009 Μέλος Δημοσ. 2 Ιουνίου 2009 Σε ευχαριστώ πολύ. Όντως πολύ περίεργα πράγματα. Μήπως παίζει ρόλο το λειτουργικό σύστημα; Εχω Windows ΧP...
parsifal Δημοσ. 2 Ιουνίου 2009 Δημοσ. 2 Ιουνίου 2009 Όταν έγραψα το script (τόσο την αρχική όσο και τη διορθωμένη εκδοχή), ήμουν σε XP. Μεσολάβησε από τότε μετάβασή μου σε Vista SP2. Όπως καταλαβαίνεις, ακόμη μεγαλύτερο μπέρδεμα! Αν και δε νομίζω πως παίζει κάποιο ρόλο το Λ/Σ, απ' ό,τι έχω καταλάβει τα objects που χρησιμοποιούνται στο script για πρόσβαση στα περιεχόμενα ενός καταλόγου είναι απαράλλαχτα και δουλεύουν με τον ίδιο τρόπο και σε παλαιότερες εκδόσεις Windows. Θα επαναλάβω όμως αυτό που ρώτησα και πριν: Μήπως την ώρα που τρέχει το script έχεις ανοικτό κάποιο παράθυρο(-α) Windows Explorer που δείχνει στον κατάλογο με τα αρχεία mp3; Αν ναι, κλείσε το.
Nikos_Vita Δημοσ. 2 Ιουνίου 2009 Μέλος Δημοσ. 2 Ιουνίου 2009 Το ξανάκανα και πάλι τα ίδια. Παρατηρώ όμως ότι ακόμα και όταν κάνω Move τα αρχεία στο αρχικό folder για να ξανακάνω split δεν τα μεταφέρει με τη σειρά αλλά μπερδεμένα... Περίεργα πράγματα... Άλλαξα και τα DATE/TIME attributes μπας και φταίει αυτό αλλά τίποτα πάλι... Για κάποιο λόγο το λειτουργικό μεταφέρει μπερδεμένα τα αρχεία. Δεν νομίζω να φταίει το scipt. Είμαι σίγουρος ότι φταίει το λειτοργικό...
PCharon Δημοσ. 2 Ιουνίου 2009 Δημοσ. 2 Ιουνίου 2009 Είμαι σίγουρος ότι φταίει το λειτοργικό... Ούτε το λειτουργικό φταίει, ούτε τα attributes. Γενικώς δε φταίει κάτι γι αυτό, είναι άλλος ο λόγος που γίνεται (είναι "τεχνικό" θέμα). Πρέπει να γίνει πρώτα λίστα με τα αρχεία, μετά sorting ανάλογα με τα επιθυμητά options ομαδοποίησης των αρχείων (πχ αλφαβητικά + αριθμός που λες) και μετά να μετακινηθούν τα αρχεία. Χρειάζεται δηλαδή ένα προγραμματάκι.
parsifal Δημοσ. 2 Ιουνίου 2009 Δημοσ. 2 Ιουνίου 2009 PCharon, εσύ βλέπεις κάποιο πρόβλημα με το enumeration των αρχείων στο script; Χρησιμοποιώ τη μέθοδο Items του FolderObject που δείχνει στον κατάλογο-στόχο. Στο MSDN δεν αναφέρει αν η μέθοδος επιστρέφει τα περιεχόμενα με αλφαβητική σειρά, υπέθεσα (κακώς ίσως) ότι το κάνει.
PCharon Δημοσ. 2 Ιουνίου 2009 Δημοσ. 2 Ιουνίου 2009 Όπως είπα και παραπάνω, δεν φταίει τίποτα. Τα αρχεία επιστρέφονται πάντα με τη σειρά που έχουν δημιουργηθεί στο δίσκο (τουλάχιστον στα συστήματα αρχείων που χρησιμοποιούν τα Windows). Χρειάζεται επιπλέον διαδικασία για να τα πάρεις με κάποια σειρά (μετέπειτα sorting, ανάλογα με τα επιθυμητά κριτήρια) και αυτό δεν ξέρω αν μπορεί να γίνει με vbs (χρειάζεται κάποιο buffer κτλ, άρα πρέπει να φτιαχτεί προγραμματάκι). Υ.Γ. Έχω απεγκατεστημένο το scripting στον υπολογιστή μου και δεν μποροώ να το δοκιμάσω σε κάθε περίπτωση. Υ.Γ.2 Υπόσχομαι να φτιάξω ένα freeware που να κάνει τη δουλειά αυτή (αλλά δεν ξέρω πότε θα το κάνω, είμαι λίγο off).
parsifal Δημοσ. 2 Ιουνίου 2009 Δημοσ. 2 Ιουνίου 2009 Όπως είπα και παραπάνω, δεν φταίει τίποτα. Τα αρχεία επιστρέφονται πάντα με τη σειρά που έχουν δημιουργηθεί στο δίσκο (τουλάχιστον στα συστήματα αρχείων που χρησιμοποιούν τα Windows). Μόλις έκανα μία δοκιμή με το παρακάτω script: > ' ListFiles.vbs ' Author: parsifal ' Lists all contents of a given directory Option Explicit Dim TargetDir, ObjShell, ObjDir, ObjFSO, Counter, NextItem TargetDir = InputBox("Provide a full path as the target directory (e.g. E:\Files\Music\MyFolder):", "Enter target dir") Set ObjShell = CreateObject("Shell.Application") Set ObjDir = ObjShell.Namespace(TargetDir) Set ObjFSO = CreateObject("Scripting.FileSystemObject") Counter = 0 For Each NextItem in ObjDir.Items Counter = Counter + 1 MsgBox("Item number " & Counter & "'s name: " & NextItem) Next WScript.Quit Συνημμένο: ListFiles.zip ...σε έναν κατάλογο στον οποίο δημιούργησα δύο μηδενικού μεγέθους αρχεία TXT: Πρώτα ένα με όνομα 02.txt και μετά ένα με όνομα 01.txt. Το script τυπώνει πρώτα το 01.txt και μετά το 02.txt.
PCharon Δημοσ. 2 Ιουνίου 2009 Δημοσ. 2 Ιουνίου 2009 Για δοκίμασε το ίδιο σε FAT32 και σε NTFS να δούμε. (νόμιζα πως συμβαίνει και στα δύο fs, αλλά τελικά μάλλον συμβαίνει μόνο στο FAT)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.