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

Batch file για αλλαγη file enumeration


tech25

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

Εχω ενα φακελο με καμια 200αρια jpg's της μορφης

χχχχ-χχ-χχχχ-χχχ-χχχ-001.jpg

χχχχ-χχ-χχχχ-χχχ-χχχ-002.jpg

χχχχ-χχ-χχχχ-χχχ-χχχ-003.jpg

και παει λεγοντας.

Αυτα γινονται import σε βαση SQL με ενα third party utility.

Το προβλημα ειναι οτι αυτο το Utility εχει προβλημα στο αρχικα 0 απο καθε νουμερο.

Δηλαδη αν το εχω ετσι δουλευει

χχχχ-χχ-χχχχ-χχχ-χχχ-1.jpg

Φανταζεστε καποιον ευκολο τροπο για να φαω τα αρχικα μηδενικα;

 

Thanx...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Με κανονικές εκφράσεις ίσως;

 

Π.χ., εφόσον δεν χρειάζεσαι οπωσδήποτε μια αυτοματοποιημένη λύση, ιδού πώς γίνεται στο Flexible Renamer, Advanced Rename, Reg Exp:

 

>
(.*-)(0{1,2})(\d{1,})\.(.*)

 

Και αντικατάσταση με:

 

>
\1\3\.\4

 

Κοιτάς και την προεπισκόπηση πριν πατήσεις το κουμπί ~ εκτός αν είσαι άσος των κανονικών εκφράσεων και δεν φοβάσαι τίποτα. :-)

 

http://hp.vector.co.jp/authors/VA014830/english/FlexRena/

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν υποθεσουμε οτι:

Τα ονοματα δεν εχουν space (λογικο, αφου προοριζονται για sql)

Ειναι ολα συγκεκριμενου μεγεθους ονοματος σαν το δειγμα που δινεις

Ο τριψηφιος αριθμος ειναι παντα στις ιδιες θεσεις

 

Βαλε το παρακατω στο folder με τα jpg.

 

>
@echo off
setlocal

for /f %%a in ('dir /b *.jpg') do call :fix_this %%a
goto :end

:fix_this
set filename=%1
set part1=%filename:~0,21%
set /a part2=%filename:~21,3%
set part3=%filename:~24%

ren %filename% %part1%%part2%%part3%
goto :eof

:end
echo All files have been renamed
pause

 

Αν δεν ισχυουν οι υποθεσεις μου, το αναλογο batch θα μπορουσε να γινει ενδεχομενως αρκετα πιο περιπλοκο και σιγουρα δεν θα δουλευε ετσι οπως ειναι.

 

Σε οποιαδηποτε περιπτωση, καλυτερα προγραμματακια ετοιμα για rename. Το advanced renamer προτεινω, που σου βγαζει και δεξι κλικ στα folders και σου ανοιγει παραθυρακι με τα αρχεια μεσα και οτιδηποτε διευκολυνσεις μπορει να χρειαστεις για rename.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε οποιαδηποτε περιπτωση, καλυτερα προγραμματακια ετοιμα για rename. Το advanced renamer προτεινω, που σου βγαζει και δεξι κλικ στα folders και σου ανοιγει παραθυρακι με τα αρχεια μεσα και οτιδηποτε διευκολυνσεις μπορει να χρειαστεις για rename.

 

Μάλλον δεν εννοούσες αυτό, αλλά έβαλα στον γούγλη «advanced renamer» να δω ποιο λες και βρήκα κάτι πολύ ενδιαφέρον: :-D

 

http://www.slurdge.org/utilities/advanced-renamer

 

Μαζική μετονομασία ΜΕ κανονικές εκφράσεις και ΧΩΡΙΣ GUI. :-) Υποστηρίζει και ονόματα Unicode.

 

>
advanced-renamer -e:(.*-)(0{1,2})(\d{1,})\.(.*) -r:$$1$$3.$$4

 

Definitely a keeper! :-D

 

Στο μεταξύ θυμήθηκα κι άλλο ένα εργαλειάκι, το awxRename, που δουλεύει από το context menu:

 

insomniaawxrenameregex2nu8.png

 

Το αναφέρω και στα χρήσιμα shell extensions:

 

http://www.insomnia.gr/vb3/showthread.php?t=152730

 

Επίσης, η δουλειά του tech25 πρέπει να γίνεται και με javascript.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ωραιο το advanced renamer απο κονσολα.

 

Αυτο που ελεγα, θυμηθηκα οτι τελικα ειναι κομματι του file menu tools. Δεν ξερω αν υπαρχει και αυτονομο.

 

http://www.lopesoft.com/en/fmtools/info.html

 

Εχει και αυτο regular expressions

 

Οταν λες javascript εννοεις τη JScript των windows που μπορει να χρησιμοποιηθει για shell scripting? Γινεται, οπως γινεται και με VBScript η οποια ειναι η standard γλωσσα για windows scripting (περα απο τα batch files). Αλλα αυτες ειναι πολυ πιο δυνατες απο τα batch files. Αυτο ελειπε να μην γινοταν. Το δικο σου πληρες rename utility θα μπορουσες να φτιαξεις σε αυτες

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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