x_vagos_x Δημοσ. 28 Δεκεμβρίου 2013 Δημοσ. 28 Δεκεμβρίου 2013 Καλησπέρα παίδες. Έχω βρει στο GitHub ένα repo που χρειάζεται το Node.js και αφού το εγκαταστήσεις καλείς την εντολή interfacelift-downloader 1920x1080 από CMD και σου κατεβάζει στο working directory τα wallpapers του Interfacelift στην τάδε ανάλυση. Επειδή όμως ο server τους τρώει φρίκες, κάποια στιγμή το πρόγραμμα σταματάει και πετάει κάποιο error, γυρνώντας στο prompt του χρήστη. Αν ξανατρέξεις την εντολή, φροντίζει να μην σου κατεβάσει τα ήδη κατεβασμένα. Θέλω να φτιάξω ένα batchάκι, ώστε να loopάρει όλο το βράδυ ώστε να κατεβάσει τα πάντα μέχρι να ξυπνήσω. Με τις ελάχιστες γνώσεις μου, λοιπόν, έγραψα το εξής: //για να αλλάξω το working directory D: cd D:\test2 //για να loopάρω την εντολή :loop interfacelift-downloader 1920x1080 goto loop Ωστόσο με το που πετάξει το error που σας έλεγα, αντί να loopάρει, τερματίζει. Τι μπορώ να κάνω; Είναι όλη η προσέγγιση λάθος;
Star_Light Δημοσ. 28 Δεκεμβρίου 2013 Δημοσ. 28 Δεκεμβρίου 2013 Καταρχην θές να φτιάξεις ενα batchaki οπως λές ... ενα batch file script. Το θεμα ειναι οτι τουλαχιστον αλγοριθμικα έχεις σκεφτει αν ειναι σωστη η λογικη. Σχεδιασε σε ενα χαρτι τι ακριβως θέλεις και μετα ψάξε να βρεις τις κατάλληλες εντολές.
x_vagos_x Δημοσ. 29 Δεκεμβρίου 2013 Μέλος Δημοσ. 29 Δεκεμβρίου 2013 Ευχαριστώ για την απάντησή σου. Έχω ήδη σχεδιάσει τι θέλω να κάνω, όμως. Επίσης έχω γράψει το batch file σε notepad και το έχω μετονομάσει σε test.bat. Το θέμα μου είναι ότι δεν βρίσκω κάτι σχετικό, ή τουλάχιστον δεν το αναγνωρίζω αν είναι σχετικό, μιας και οι γνώσεις μου σταματούν στις εντολές mkdir, rmdir, cd, και πλέον... goto. 1. Αλλάζω working directory σε 'D:\test2>' 2. Καλώ την εντολή 3. Όταν η εντολή βγάλει το error, στο cmd εμφανίζεται και πάλι 'D:\test2>' 4. Καλώ την εντολή, ξανά. 5. Όταν η εντολή βγάλει το error, στο cmd εμφανίζεται και πάλι 'D:\test2>' και ούτω καθ' εξής. Πώς ξαναδίνω επ άπειρον την ίδια εντολή κάθε φορά που επιστρέφω στο 'D:\test2>', λοιπόν;
Star_Light Δημοσ. 29 Δεκεμβρίου 2013 Δημοσ. 29 Δεκεμβρίου 2013 Σορρυ αλλα ουτε εγω εχω πολλες γνωσεις στο batch file programming. Το επ'απειρον ειναι ενας ατερμων βροχος ο οποιος θα σταματήσει οταν ικανοποιηθεί κάποια συνθηκη θα κάνει break. Τωρα πως γινεται αυτο σε batch ψάξτο. Δεν εχω καταλαβει και 100% τι θες να κάνεις αλλα το ψιλοπαλευω τωρα αν σε βοηθησει κατι απο αυτα καλως. Σαν ιδεα πιο πολυ. H καταλαηξη .bat ειναι σωστη απο οσο θυμαμαι και σε Notepad γραφεις κανονικά.
x_vagos_x Δημοσ. 29 Δεκεμβρίου 2013 Μέλος Δημοσ. 29 Δεκεμβρίου 2013 Σ' ευχαριστώ για το χρόνο σου. Ας παραθέσω και τη λογική μου, δεν χάνω τπτ. Η εντολή interfacelift-downloader 1920x1080 καλείται. Εκτελείται κανονικά (κατεβάζει wallpapers της ανάλυσης 1920x1080 στο current working directory). Κάποια στιγμή όμως σταματάει, πετώντας ένα error, και επιστρέφοντας το input στο χρήστη. Αν την ξαναεκτελέσω την εντολή interfacelift-downloader 1920x1080, ξανασκανάρει το directory για τυχόν κατεβασμένες εικόνες, και κατεβάζει τις υπόλοιπες που δεν έχουν κατέβει. Αυτό που θέλω να κάνω είναι φτιάξω ένα script που να καλεί συνεχώς την ίδια εντολή όποτε επιστρέφει το Input στον χρήστη, μέχρι να διακόψω εγώ με Ctrl+C την εκτέλεση του script.
Star_Light Δημοσ. 29 Δεκεμβρίου 2013 Δημοσ. 29 Δεκεμβρίου 2013 Σ' ευχαριστώ για το χρόνο σου. Ας παραθέσω και τη λογική μου, δεν χάνω τπτ. Η εντολή interfacelift-downloader 1920x1080 καλείται. Εκτελείται κανονικά (κατεβάζει wallpapers της ανάλυσης 1920x1080 στο current working directory). Κάποια στιγμή όμως σταματάει, πετώντας ένα error, και επιστρέφοντας το input στο χρήστη. Αν την ξαναεκτελέσω την εντολή interfacelift-downloader 1920x1080, ξανασκανάρει το directory για τυχόν κατεβασμένες εικόνες, και κατεβάζει τις υπόλοιπες που δεν έχουν κατέβει. Αυτό που θέλω να κάνω είναι φτιάξω ένα script που να καλεί συνεχώς την ίδια εντολή όποτε επιστρέφει το Input στον χρήστη, μέχρι να διακόψω εγώ με Ctrl+C την εκτέλεση του script. Μπες σε κάποιο φορουμ που ασχολουνται αποκλειστικα με batch file programming αν δεν βρεθει κανεις απο εδω να στο λύσει. btw η interfacelift-downloader 1920x1080 υποστηριζεται απο το batch? 1
x_vagos_x Δημοσ. 29 Δεκεμβρίου 2013 Μέλος Δημοσ. 29 Δεκεμβρίου 2013 Υποστηρίζεται η εντολή, γιατί τρέχει κανονικά όταν καλώ το batch με διπλό κλικ. Δύο κλικ, αλλάζει working dir και κάνει execute την interfacelift-downloader 1920x1080. Μετά όμως δεν ξανατρέχει, κλείνει το παράθυρο σαν να τελείωσε το script εκεί. Αυτό που κάνει ο κώδικας που παραθέτω στην αρχή είναι να βάζει ένα 'σημάδι' στο script. Όταν τρέξει και τελειώσει η εντολή, εκτελείται το goto, που κάνει το βρόχο να ξεκινήσει. Τότε υποτίθεται ξαναεκτελείται η εντολή και ούτω καθ' εξής. Πρέπει να έχει να κάνει με το ότι δεν τελειώνει επιτυχώς η εντολή, αλλά τελειώνει με error. Δεν μπορώ να το εξηγήσω αλλιώς.
Star_Light Δημοσ. 29 Δεκεμβρίου 2013 Δημοσ. 29 Δεκεμβρίου 2013 Υποστηρίζεται η εντολή, γιατί τρέχει κανονικά όταν καλώ το batch με διπλό κλικ. Δύο κλικ, αλλάζει working dir και κάνει execute την interfacelift-downloader 1920x1080. Μετά όμως δεν ξανατρέχει, κλείνει το παράθυρο σαν να τελείωσε το script εκεί. Αυτό που κάνει ο κώδικας που παραθέτω στην αρχή είναι να βάζει ένα 'σημάδι' στο script. Όταν τρέξει και τελειώσει η εντολή, εκτελείται το goto, που κάνει το βρόχο να ξεκινήσει. Τότε υποτίθεται ξαναεκτελείται η εντολή και ούτω καθ' εξής. Πρέπει να έχει να κάνει με το ότι δεν τελειώνει επιτυχώς η εντολή, αλλά τελειώνει με error. Δεν μπορώ να το εξηγήσω αλλιώς. Επειδη η προσπάθεια χωρις καθοδηγηση δεν οδηγει πάντα στην λύση : http://www.dostips.com/forum/viewforum.php?f=3 καλυτερα ρώτα εναν πιο ειδικό.
x_vagos_x Δημοσ. 29 Δεκεμβρίου 2013 Μέλος Δημοσ. 29 Δεκεμβρίου 2013 Χαχαχαχα, έτσι. Πρώτο link στο google. Μπήκα ήδη και γράφτηκα. 1
Star_Light Δημοσ. 29 Δεκεμβρίου 2013 Δημοσ. 29 Δεκεμβρίου 2013 Χαχαχαχα, έτσι. Πρώτο link στο google. Μπήκα ήδη και γράφτηκα. Μακαρι να μπορουσα να βοηθησω παραπανω =/ 1
defacer Δημοσ. 29 Δεκεμβρίου 2013 Δημοσ. 29 Δεκεμβρίου 2013 Αυτό το interfacelift-downloader που τρέχεις τι είναι; Δεν πιστεύω να είναι κι αυτό batch file? Αν είναι, πρέπει να ξέρεις ότι καλώντας ένα batch μέσα από ένα άλλο η εκτέλεση του πρώτου δεν συνεχίζεται όταν τερματίσει το δεύτερο (δηλαδή στην προκειμένη περίπτωση δε θα εκτελεστεί ποτέ η goto). Για να το κάνεις να δουλεύει όπως περιμένεις πρέπει να χρησιμοποιήσεις την CALL από μπροστά: call interfacelift-downloader ... 1
x_vagos_x Δημοσ. 29 Δεκεμβρίου 2013 Μέλος Δημοσ. 29 Δεκεμβρίου 2013 Το δοκιμάζω και επανέρχομαι. Να ήταν τόσο απλό; Το ότι τρέχει έχοντας προσθέσει το call μπροστά, σημαίνει ότι είναι batch file; Γιατί τότε βρήκαμε τι φταίει. ΔΟΥΛΕΥΕΙ! Σας ευχαριστώ πολύ παιδιά. Άντε και καλή χρονιά.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα