moameth Δημοσ. 10 Αυγούστου 2007 Δημοσ. 10 Αυγούστου 2007 paidia kalhspera se olous... mhpos mporei na voithisi kaneis sto exhs, thelo na ftiaxo ena batch arxeiakh to opoio na mou kanei copy to proto arxeio pou vreiskei se ena fakelo. o fakelos exeis mesa arxeia exe. opoios mporei as voithisi.... thx ek ton proteron
Επισκέπτης Δημοσ. 10 Αυγούστου 2007 Δημοσ. 10 Αυγούστου 2007 Δηλαδή το όνομα του αρχείου αλλάζει? γιατι αν δεν αλλάζει δεν υπάρχει λόγος να κάνεις κάτι τετοιο.
Bspus Δημοσ. 10 Αυγούστου 2007 Δημοσ. 10 Αυγούστου 2007 Οντως δωσε λιγο περισσοτερα στοιχεια. Τι θες να πετυχεις. Ειναι καποιος sυγκεκριμενος φακελος που θα ψαχνει και καποιος συγκεκριμενος στον οποιο θα γραφει η θες και αυτα να ειναι παραμετρικα?
moameth Δημοσ. 10 Αυγούστου 2007 Μέλος Δημοσ. 10 Αυγούστου 2007 exo logo pou sas eipa ta parapano. mesa o fakelos exei cd-key loader gia games. thelo na kalo to prwto arxeio pou vrisketai mesa ston fakelo kai meta h na to metafero kai na to xrhsimopoio h na to xrhsimopoio kai na to kano rename, etsi oste o epomenos pou to kalh na vriskei to epomeno file. me katalavate?
Chrisxxx Δημοσ. 11 Αυγούστου 2007 Δημοσ. 11 Αυγούστου 2007 /λιγο oftopic :Μηπως εχει καποιος να μου προτεινει βιβλιο ή λινκ (Καλυτερα) που να αναφερεται σε batch files?
parsifal Δημοσ. 11 Αυγούστου 2007 Δημοσ. 11 Αυγούστου 2007 moameth, η έλλειψη εντολής αντίστοιχης με την head των Unix-οειδών λειτουργικών κάνει τα πράγματα λίγο πιο περίπλοκα από ό,τι θα έπρεπε να είναι. Κατά τα άλλα, μπορούμε να το ξεπεράσουμε με μία «μαμουνιά». Αποθηκεύουμε τα filenames των exe στο αρχείο list.txt με ανάποδη σειρά και μετά με ένα βρόχο θέτουμε ως τιμή της μεταβλητής FIRST κάθε φορά την επόμενη γραμμή του list.txt, άρα στο τέλος του βρόχου η FIRST θα περιέχει το filename του πρώτου exe στον τρέχοντα κατάλογο: > @echo off rem CopyFirstExe.cmd dir /b /o-n *.exe > list.txt for /F %%f in (list.txt) do set FIRST=%%f copy %LAST% [color="DarkOrange"]c:\path[/color] Προφανώς, θα αλλάξεις το c:\path στο path που θες εσύ...
moameth Δημοσ. 11 Αυγούστου 2007 Μέλος Δημοσ. 11 Αυγούστου 2007 file mou se euxaristo gia to post alla auto pou esteiels kanei copy ola ta arxeia pou exei mesa o fakelos pou orizo. mhpos me vb h me autoit ginete pio eukola?
parsifal Δημοσ. 11 Αυγούστου 2007 Δημοσ. 11 Αυγούστου 2007 Έχεις δίκιο, μου ξέφυγε στην τελευταία γραμμή άλλο όνομα μεταβλητής. Ο σωστός κώδικας είναι: > @echo off rem CopyFirstExe.cmd dir /b /o-n *.exe > list.txt for /F %%f in (list.txt) do set FIRST=%%f copy %FIRST% [color="DarkOrange"]c:\path[/color]
moameth Δημοσ. 11 Αυγούστου 2007 Μέλος Δημοσ. 11 Αυγούστου 2007 file mou pali ta idia kanei, vevaia o fakelos pou kano test exei mesa bat arxeia alla pistevo oti den exei shmasia pali kanei copy ola ta file tou folder.... mhpos exeis kapoion allo tropo? an exeis msn steilem ou pmh kane add sto [email protected]
parsifal Δημοσ. 11 Αυγούστου 2007 Δημοσ. 11 Αυγούστου 2007 file mou pali ta idia kanei, vevaia o fakelos pou kano test exei mesa bat arxeia alla pistevo oti den exei shmasia Έχει τεράστια σημασία. Αν στο φάκελο που το τεστάρεις δεν υπάρχουν καθόλου exe αρχεία, τελικά η μεταβλητή FIRST θα έχει κενή τιμή, άρα η τελευταία εντολή θα ισοδυναμεί με: > copy c:\path ...που όντως θα αντιγράφει όλα τα αρχεία από το c:\path στον τρέχοντα κατάλογο. Βάλε τουλάχιστον ένα αρχείο exe μέσα στον κατάλογο από όπου τρέχεις το cmd και δοκίμασε. Εναλλακτικά, άλλαξε στον κώδικα την εντολή dir ως εξής: > dir /b /o-n *.* > list.txt ...οπότε θα δουλεύει για όλους τους τύπους αρχείων και θα αντιγράφει το πρώτο από αυτά...
moameth Δημοσ. 11 Αυγούστου 2007 Μέλος Δημοσ. 11 Αυγούστου 2007 anti gia *.exe pou eixes esy evala *.bat, to katalava auto kai logiko alloste. exo sto fakelo 4 arxeia (01.bat,02.bat,03.bat,04.bat), tora doulevei mou kanei copy to proto arxeio alla otan xanaektelo to batch mou kanei pali to idio pos mporo me kapoion tropo na to metonomazo h na to svino apo to fakelo kai meta thn xrhsi tou na to xanaepanafero an exeis msn milame apo ekei. se euxaristo para poly pantos gia thn voithia mexri edo
parsifal Δημοσ. 11 Αυγούστου 2007 Δημοσ. 11 Αυγούστου 2007 Piece of cake! Αρχικά εκτελείται αυτό: > @echo off rem MoveFirstFile.cmd set MOVETO=C:\path dir /b /o-n *.* > list.txt for /F %%f in (list.txt) do set FIRST=%%f && echo %MOVETO%\%%f > list2.txt move %FIRST% %MOVETO% move /y list2.txt list.txt Πάλι, αντί για C:\path βάζεις αυτό που θες εσύ. Κάνεις ό,τι είναι να κάνεις και μετά καλείς αυτό: > @echo off rem RestoreFirstFile.cmd for /F %%f in (list.txt) do move %%f . del list.txt
alkisg Δημοσ. 12 Αυγούστου 2007 Δημοσ. 12 Αυγούστου 2007 Λύση σε μια γραμμή χωρίς καν batch file: for %f in (*.*) do copy %f c:\folder && exit
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.