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

batch move files


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

Δημοσ.

so

 

προσπαθω να μετακινησω τα περιεχομενα φακελων (με διαφορετικα ονοματα) σε ενα φακελο. τα περιεχομενα ειναι pdf που ερχονται και αυτα με πολλα ονοματα. 

 

δοκιμασα τα αποκατω

 

@ECHO 


FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.πδφ) DO (
            "MOVE *.PDF C:\Users\qwerty\Desktop\New folder "%%X"
 )
    popd
)


PAUSE
δεν.
 
δοκιμασα αυτο
 
@ECHO 

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.rar) DO (
            MOVE *.PDF "C:\Users\qwerty\Desktop\New folder" "%%X"
 )
    popd
)
 




PAUSE

δεν.

 

δοκιμασα

 

 
            MOVE  C:\Users\qwerty\Desktop\New folder*.PDF  MOVE  C:\Users\qwerty\Desktop\New folder(2)*.PDF

δεν, again.

 

So, το ερωτημα ειναι πως του λεω να ψαξει τα pdf των φακελων και να τα φερει εστω και ενα επιπεδο πανω?

 

 

thanks  

 

 

Δημοσ.

Για να αντιγράψεις όλα τα pdf από τον φάκελο και όλους τους υπό φακέλους. 

cd /d %0\..                                   κάνει cd στον φάκελο όπου βρίσκεται αυτό το bat     
dir /s /b *.pdf >file.txt                     κάνει μια λίστα με τα pdf σε απλή μορφή κειμένου
for /f "delims=" %%a in (file.txt) do (       παίρνει το όνομα του pdf και αρχίζει την λούπα με το (
copy "%%a" ..\                                αντιγράφει το αρχείο ένα επίπεδο ποιο πάνω *
)                                             τελειώνει την λούπα

*μπορείς να βάλεις και έναν συγκεκρυμένο φάκελο να πάνε όλα εκεί

  • Like 1
Δημοσ.

Για να αντιγράψεις όλα τα pdf από τον φάκελο και όλους τους υπό φακέλους. 

cd /d %0\..                                   κάνει cd στον φάκελο όπου βρίσκεται αυτό το bat     
dir /s /b *.pdf >file.txt                     κάνει μια λίστα με τα pdf σε απλή μορφή κειμένου
for /f "delims=" %%a in (file.txt) do (       παίρνει το όνομα του pdf και αρχίζει την λούπα με το (
copy "%%a" ..\                                αντιγράφει το αρχείο ένα επίπεδο ποιο πάνω *
)                                             τελειώνει την λούπα

*μπορείς να βάλεις και έναν συγκεκρυμένο φάκελο να πάνε όλα εκεί

 

 

δεν δουλεψε και μου εβγαλε σφαλμα " the file cannot be copied onto to itself"

@ECHO 


cd /d %0\..                                        
dir /s /b *.pdf >file.txt                     
for /f "delims=" %%a in (file.txt) do (  
copy "C:\Users\qwerty\Desktop\New folder"                               
)      

PAUSE

το αρχειο φτιαχτηκε παντως.

 

καμια αλλη προταση?

 

thanks 

Δημοσ.

δεν δουλεψε και μου εβγαλε σφαλμα " the file cannot be copied onto to itself"

Επιδή μάλλον έχεις το κάθε pdf μέσα σε φάκελο που έχει το ίδιο όνομα με το pdf.

Δημοσ.

Δεξί κλικ στον φάκελο->αναζήτηση.

Εύρεση για *.pdf

Επιλογή όλων.

Αποκοπή

Επικόλληση.

 

Εκτός αν πρέπει σώνει και καλά να γίνει με batch script.

 

EDIT:

Είδα τα δύο σκριπτάκια σου viper αλλά είναι ότι να 'ναι. Μόνος σου τα έγραψες ή τα πήρες όπως είναι από αλλού;

 

Στο 1ο, στην 2η for κάνεις αναζήτηση για *.πδφ :shock:  Τι περιμένεις να σου βρει;

Άντε και σου βρήκε κάποιο αρχείο πδφ, η move γιατί έχει " μπροστά;

Μετά ορίζεις φάκελο αποστολής, άντε καλά. Το "%%X" στο τέλος τι το θέλεις; Άσε που έχεις αφήσει και κενό μετά το New Folder και θα έπρεπε να βάλεις ένα / και να κολλήσεις το όνομα αρχείου, πράγμα όμως που δεν χρειάζεται αφού δεν θέλεις να αλλάξεις το όνομα του αρχείου, οπότε το σταματάς στο new folder ή το κάνεις όπως στο 2ο script όπου έχεις ορίσει σωστά το path με " και " μπροστά και πίσω και εκεί μπορείς να βάλεις και το "%%X" στο τέλος.

Στο 2ο όμως ψάχνεις για *.rar στη 2η for. Τελικά rar ή για πδφ θέλεις να βρεις :-D :-D :-D

 

Το διορθωμένο script είναι το παρακάτω:

@echo off
md c:\temp_pdf
FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.pdf) DO (
            MOVE *.PDF C:\temp_pdf\
 )
    popd
)


PAUSE

Στην move βάλε το path που θέλεις να τα πας και διέγραψε ή διόρθωση την 2η γραμμή που δημιουργεί φάκελο temp_pdf στον c και μετέφερε το σκριπτάκι το parent folder από εκεί που θέλεις να πάρεις τα pdf.

Αν το αφήσεις έτσι θα δουλέψει αλλά θα σου δημιουργήσει φάκελο στον c και θα μεταφέρει εκεί τα pdf

Δημοσ.

Δεξί κλικ στον φάκελο->αναζήτηση.

Εύρεση για *.pdf

Επιλογή όλων.

Αποκοπή

Επικόλληση.

 

Εκτός αν πρέπει σώνει και καλά να γίνει με batch script.

 

EDIT:

Είδα τα δύο σκριπτάκια σου viper αλλά είναι ότι να 'ναι. Μόνος σου τα έγραψες ή τα πήρες όπως είναι από αλλού;

 

Στο 1ο, στην 2η for κάνεις αναζήτηση για *.πδφ :shock:  Τι περιμένεις να σου βρει;

Άντε και σου βρήκε κάποιο αρχείο πδφ, η move γιατί έχει " μπροστά;

Μετά ορίζεις φάκελο αποστολής, άντε καλά. Το "%%X" στο τέλος τι το θέλεις; Άσε που έχεις αφήσει και κενό μετά το New Folder και θα έπρεπε να βάλεις ένα / και να κολλήσεις το όνομα αρχείου, πράγμα όμως που δεν χρειάζεται αφού δεν θέλεις να αλλάξεις το όνομα του αρχείου, οπότε το σταματάς στο new folder ή το κάνεις όπως στο 2ο script όπου έχεις ορίσει σωστά το path με " και " μπροστά και πίσω και εκεί μπορείς να βάλεις και το "%%X" στο τέλος.

Στο 2ο όμως ψάχνεις για *.rar στη 2η for. Τελικά rar ή για πδφ θέλεις να βρεις :-D :-D :-D

 

Το διορθωμένο script είναι το παρακάτω:

@echo off
md c:\temp_pdf
FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.pdf) DO (
            MOVE *.PDF C:\temp_pdf\
 )
    popd
)


PAUSE

Στην move βάλε το path που θέλεις να τα πας και διέγραψε ή διόρθωση την 2η γραμμή που δημιουργεί φάκελο temp_pdf στον c και μετέφερε το σκριπτάκι το parent folder από εκεί που θέλεις να πάρεις τα pdf.

Αν το αφήσεις έτσι θα δουλέψει αλλά θα σου δημιουργήσει φάκελο στον c και θα μεταφέρει εκεί τα pdf

 

Παιρνω μυνημα: the syntax of the command is incorrect

@ECHO 


md c:\temp_pdf
FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.pdf) DO (
            MOVE *.PDF C:\Users\qwerty\Desktop\New folder\
 )
    popd
)


  

PAUSE

edit

 

το εγραψα ετσι και μου το πηρε

@ECHO 


md c:\temp_pdf
FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
        FOR %%X in (*.pdf) DO (
            MOVE *.PDF "C:\Users\qwerty\Desktop\New folder\"
 )
    popd
)


  

PAUSE

thanks & mark it as closed

edit

 

το 

 

md c:\temp_pdf

 

το χρειαζομαι;

ακυρο το βρηκα, thanks  

Δημοσ.

Έτσι, για τους τύπους, στα batch scripts πρέπει να βάλεις το path σε ομοιωματικά " και " όταν έχεις κενό σε κάποιο όνομα φακέλου ή αρχείου ή του path (όπως στην move). Εγώ δεν το χρειάστηκα γιατί δεν έχω κενά (ενώ κακώς δεν το έβαλα, θα έπρεπε να το βάλω για συμβατότητα) ενώ εσύ χρησιμοποιήσεις το όνομα New Folder για τον φάκελο προορισμού οπότε έπρεπε να το βάλεις υποχρεωτικά.

 

Όπως κατάλαβες, το md δημιουργεί τον φάκελο στον c. Εσύ δεν το χρειάζεσαι αφού άλλαξες το path όπου θα αντιγράφονται τα αρχεία.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...