gplians Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Καλημέρα σας. Θα ήθελα να σας πάω λίγα χρόνια πίσω αλλά τι να κάνω.. Έχω ένα αρχείο το οποίο έχει 5-10 σειρές μέσα. Η 1η γράφει "Hello. The current time is: %time%", η 2η "Welcome. The date is: %date% " κτλ.. Θέλω όταν το τρέχω να μου εκτυπώνει μια απο αυτές τις σειρές (τυχαίες ή με σειρά δεν με νοιάζει) με την ώρα ή την ημερομηνία που μπορεί να έχει στο τέλος κάθε γραμμή και να μου τα στέλνει κατευθείαν σε USB εκτυπωτή. Ευχαριστώ πολύ!
TheELF Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Όταν λες DOS;Μέσα από κάποια windows ή τρέχει μόνο καθαρό dos;;;
Candlemass Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Καταρχάς πρέπει να δείς σε ποιό port είναι ο εκτυπωτής (από device manager). π.χ. μπορεί να είναι στην Dot4USB ή στην Dot4PRT. Επί εποχές DOS, οι Dot Matrix συνήθως ήταν στην LPT1. EDIT : Η προηγούμενη απάντηση δεν δούλευε, τα θυμόμουν λάθος Για να σου δουλέψει αυτό που θές, πρώτα πρέπει να το φέρεις σε μορφή batch file: Κάνεις edit το αρχείο με notepad (notepad++ καλύτερα) και προσθέτεις στην αρχή κάθε γραμμής το echo Στη συνέχεια μετονομάζεις το .txt σε .bat Και μετά τρέχεις την εντολη <όνομα αρχείου>.bat > <port εκτυπωτή> π.χ. lista.bat > Dot4USB Έτσι, με το > ανακατευθύνεται η έξοδος από την default (οθόνη) στη δηλωμένη (εκτυπωτής).
TheELF Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Δεν χρειάζεται το echo μπορείς απλά να κάνεις copy 'όνομα αρχείου.txt' > <port εκτυπωτή> αλλά για να γίνει αυτό πρέπει να γίνει μέσα από το command line δηλαδή μέσα από τα windows,το dos είναι άλλο πράμα.
Candlemass Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Δεν χρειάζεται το echo μπορείς απλά να κάνεις copy 'όνομα αρχείου.txt' > <port εκτυπωτή> αλλά για να γίνει αυτό πρέπει να γίνει μέσα από το command line δηλαδή μέσα από τα windows,το dos είναι άλλο πράμα. Χρειάζεται, με αυτό που λές θα του εκτυπώνει το %time% όπως το βλέπει και όχι την τρέχουσα ώρα...
gplians Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 TheELF> συγνώμη, από command prompt. Candlemass> Το echo ισχύει, θα εκτυπώνει %time% αντί για την ώρα. Με αυτό τον τρόπο όμως θα μου εκτυπώνονται όλες οι σειρές. Εγώ θέλω κάθε φορά μια από αυτές και όταν ξανατρέξει το batch να εμφανίσει την άλλη. Αυτό όμως θέλω να γίνεται αυτόματα, χωρίς να γράφει ο άλλος εντολές στο command prompt. Να το κάνω και ένα shortcut key π.χ. με το F9 και να το τρέχει απλά.
Candlemass Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Candlemass> Με αυτό τον τρόπο όμως θα μου εκτυπώνονται όλες οι σειρές. Εγώ θέλω κάθε φορά μια από αυτές και όταν ξανατρέξει το batch να εμφανίσει άλλη. Αυτό όμως θέλω να γίνεται αυτόματα, χωρίς να γράφει ο άλλος εντολές στο command prompt. Να το κάνω και ένα shortcut key π.χ. με το F9 και να το τρέχει απλά. Sorry, αυτό δεν το πρόσεξα. Μια τυχαία γραμμή θές ε; Και αλλαγή με άλλη την επόμενη φορά; Θα μπορούσε να γίνει με κάτι σαν > :printline set line=%1 set /p var=%line%<NUL exit /b και να το καλείς με call :printline μέσα σε ένα batch, όπου θα διαβάζει το txt (οπότε ανεξαρτητοποιείς τελείως το αρχείο σου). Η επιλογή της γραμμής θα μπορούσε να γίνεται με κάποια συνάρτηση rand() αλλά δεν θυμάμαι καθόλου αν υπάρχει καν σε dos/batch file (πρέπει να τα ξεσκονίσω, πάει καιρός). Θα μπορούσε βέβαια όλο αυτό να γίνει ένα ωραίο προγραμματάκι σε C που όλα θα ήταν πιο εύκολα... Δεν έχω περισσότερο χρόνο να το δοκιμάσω τώρα, αν δεν έχεις βρεί λύση θα επανέλθω το βραδάκι. To αυτόματο τρέξιμο δεν είναι τίποτα, δημιουργείς ένα shortcut στο batch file και του αλλάζεις εικονίδιο/όνομα κλπ. Αν ψάξεις στο google φαντάζομαι θα μπορέσεις να βρείς κάποιο πρόγραμμα για να ορίσεις δικά σου hotkeys για να τρέχει το shortcut ή το batch file.
gplians Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Candlemass> δεν με πειράζει αν θα είναι από DOS ή C αρκεί να εκτυπώνει μια από τις γραμμές κάθε φορά που το τρέχω και να μην είναι ίδια με την προηγούμενη. Και το αρχικό αρχείο να μπορώ να το κάνω edit ώστε να γράψω αυτά που θέλω. Δυστυχώς όμως τα έχω ξεχάσει και δεν μπορώ να βγάλω άκρη εδώ και 2 εβδομάδες. Ακόμα και την αγαπημένη μου VB την έχω ξεχάσει... Για αυτό το λόγο ζήτησα από DOS, για να μην παιδεύω κανέναν.. Αν μπορέσεις να μου πείς το βράδυ πως μπορεί να γίνει, θα το εκτιμούσα. Το shortcut θα το βρώ είτε από πρόγραμμα είτε απο assign των Winblows... Ευχαριστώ και τους 2 σας.
gplians Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Candlemass> Μην ασχοληθείς σήμερα με το δικό μου θέμα.. Μάλλον το έλυσα. Ίσως επανέλθω κατα τη διάρκεια της ημέρας ή και αύριο για να δώσω τη λύση που ακολούθησα. Σας ευχαριστώ και πάλι και τους 2 σας.
Candlemass Δημοσ. 23 Μαρτίου 2012 Δημοσ. 23 Μαρτίου 2012 Καλημέρα, δεν πρόλαβα να ασχοληθώ χθές. Σκόπευα να το κάνω το ΣΚ σε C αλλά αν το έλυσες πές μας πώς για να υπάρχει
gplians Δημοσ. 27 Μαρτίου 2012 Μέλος Δημοσ. 27 Μαρτίου 2012 Λοιπόν, κοιτάξτε τί έκανα. Παρακάτω ακολουθεί το script που βρήκα για DOS: > @Echo Off For /F "tokens=2 delims=:" %%j in ('Find /C /V "" files.txt') Do ( Set MOD=%%j ) Set MOD=%MOD:~1% :LOOP Set N=%random% If %N% gtr 99 Set N= %N:~-2,2% Set N=%N: 0=% Set /A N=%N%%%%MOD%+1 Set GRTS= For /F "tokens=1-2 delims=[]" %%j in ('Find /N /V "" files.txt') Do ( If "%%j"=="%N%" If not "%%k"=="" Set GRTS=%%k ) If not defined GRTS GoTo :LOOP Echo. %GRTS% %Date:~-4,4%%Date:~-10,2%%Date:~-7,2%%time:~-0,2%%time:~-8,2% EZO09012692 echo. echo. echo. echo. echo. echo. echo. echo. echo. Set MOD= Set N= Set GRTS= :: End_Of_Batch Και χρησιμοποιώντας το παρακάτω πρόγραμμα Printfile Spooler το έκανα να τρέχει και να εκτυπώνει ό,τι έχω γράψει ανά σειρά. Αργεί λίγο αλλά τουλάχιστον το κάνει. Το μόνο πρόβλημα που έχω είναι πως θα ήθελα το script να εκτυπώνει τις σειρές με σειρά και όχι ανακατεμένα που κάνει τώρα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα