Eusebius Δημοσ. 1 Αυγούστου 2006 Δημοσ. 1 Αυγούστου 2006 Χρησιμοποιώ το unpackmp4 για να ξεπακετάρω αρχεία .avi που έχουν packed bitstream. Για να επεξεργαστώ όλα τα .avi σ' έναν κατάλογο, το δουλεύω έτσι: > for %I in (*.avi) do java -jar unpackmp4.jar -s _un "%I" Αυτό που δεν ξέρω είναι πώς να φτιάξω ένα batch file και να ρίξω μια συντόμευση στο Send To, ώστε να επιλέγεις όλα τα αρχεία (ή τον κατάλογο) και να τα στέλνεις στο batch file μέσα από το Send To. Για τα αρχεία ένα-ένα, γίνεται μ' αυτό το batch file: > java -jar unpackmp4.jar -s _un %1 Για να στέλνω πολλά αρχεία ή έναν ολόκληρο κατάλογο, τί πρέπει να κάνω; edit 2006-08-01 13:55 Ok, βρήκα τη λύση για κατάλογο: > cd /d %1 for %%I in (*.avi) do java -jar unpackmp4.jar -s _un "%%I" Ψάχνω ακόμα για πολλαπλά αρχεία.
alkisg Δημοσ. 1 Αυγούστου 2006 Δημοσ. 1 Αυγούστου 2006 Σώσε το παρακάτω σαν DoSomethingForAllParams.bat και δοκίμασέ το με DoSomethingForAllParams.bat 1 2 3 4 5 6 7 8 9 10 11 12 >@echo off :start if "%1" == "" GOTO END echo parameter: %1 shift goto start :end
alkisg Δημοσ. 1 Αυγούστου 2006 Δημοσ. 1 Αυγούστου 2006 Ευσέβιε θα χρειαστείς επίσης ένα τρόπο να διακρίνεις πότε μια παράμετρος είναι κατάλογος και πότε όχι: > @echo off cd /d %1 if errorlevel 1 goto IsNotADirectory echo %1 is a directory goto end :IsNotADirectory echo %1 is not a directory :end Αν χρειαστείς κάτι... σφύρα! Όμως αντί να παιδεύεσαι με δύσκολα batchfiles, μπορείς να κάνεις κάτι άλλο: Να μην το βάλεις στο SendTo, αλλά στο μητρώο, στο HKCU\avifile\shell\convert\command Το convert και το command δεν υπάρχουν, τα δημιουργείς. Πας στο command και αλλάζεις την default τιμή σε "java κτλ %1". Έτσι θα εμφανίζεται ένα [Convert] με δεξί κλικ στον explorer με τον ίδιο τρόπο όπως εμφανίζονται και τα συνηθισμένα [Άνοιγμα] κτλ. Η βασική διαφορά θα είναι ότι όταν διαλέγεις πολλά αρχεία, τα "java κτλ %1" θα εκτελούνται ταυτόχρονα και όχι το ένα μετά το άλλο, οπότε ίσως δεν το θες. Βέβαια έτσι δε χρειάζεσαι for! Αν προτιμήσεις αυτή τη μέθοδο, μπορείς να κάνεις το ίδιο και στο HKCU\Folder\shell\Convert\command για τους καταλόγους, όπου και θα χρειαστείς το batch file που γράφεις παραπάνω.
Eusebius Δημοσ. 1 Αυγούστου 2006 Μέλος Δημοσ. 1 Αυγούστου 2006 Ευχαριστώ πολύ. Θα τα δοκιμάσω και θα σου πω. Βασικά, δεν το θέλω για τον εαυτό μου και ψάχνω να βρω έναν πολύ εύκολο τρόπο που να μη θέλει κονσόλες και τέτοια.
Eusebius Δημοσ. 1 Αυγούστου 2006 Μέλος Δημοσ. 1 Αυγούστου 2006 [...'] Όμως αντί να παιδεύεσαι με δύσκολα batchfiles, μπορείς να κάνεις κάτι άλλο: [...] Αφού παιδεύτηκα μέχρι που μου 'σπασαν τα νεύρα, τελικά το έκανα με το μητρώο και το context menu μόνο για τους καταλόγους. Έφτιαξα ένα κλειδί: HKCR\Directory\shell\unpackmp4, και καλώ από κει το batch file. Ευχαριστώ για τη βοήθεια. btw, τώρα που έψαχνα έπεσα για πολλοστή φορά σ' ένα χρήσιμο σάιτ: SS64.com -- Command line reference for Windows, Bash, Oracle, and SQL Server
alkisg Δημοσ. 1 Αυγούστου 2006 Δημοσ. 1 Αυγούστου 2006 Το δοκίμασα κι εγώ και μου κόλλαγε το if σε κάτι αρχεία με περίεργα ονόματα, οπότε άλλαξα το if "%1" == "" goto end σε if '%1' == '' goto end δηλαδή με μονά αυτάκια. Νομίζω ότι το > @echo off cd /d %1 if errorlevel 1 goto IsNotADirectory for %%f in (*.avi) do java -jar unpackmp4.jar -s _un %%f goto End :IsNotADirectory if '%1' == '' goto end java -jar unpackmp4.jar -s _un %1 shift goto IsNotADirectory :End δουλεύει σωστά για όλες τις περιπτώσεις. edit: βάλ' το όπως είναι στο φάκελο SendTo και μη βάλεις πουθενά διπλά εισαγωγικά του στυλ java -jar unpackmp4.jar -s _un "%1". Όταν χρειάζονται, τα βάζουν μόνα τους τα Windows για όσα προγράμματα βρίσκονται στο φάκελο SendTo. Βοήθεια για τις εντολές του DOS περιέχουν και τα Windows, αν στο έναρξη->εκτέλεση γράψεις hh mk:@MSITStore:c:\windows\help\ntcmds.chm::/ntcmds.htm
Eusebius Δημοσ. 2 Αυγούστου 2006 Μέλος Δημοσ. 2 Αυγούστου 2006 Ωωωω! Σούπερ! Μέχρι αύριο να παιδευόμουνα, δεν θα το έβρισκα... Χρειάστηκε μόνο να προσθέσω εισαγωγικά στην 4η αράδα, γιατί δεν μου δουλεύει μ' όλα τα ονόματα: for %%f in (*.avi) do java -jar unpackmp4.jar -s _un "%%f" Χίλια ευχαριστώ!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.