Volrath Δημοσιεύτηκε Μάρτιος 28, 2010 #1 Δημοσιεύτηκε Μάρτιος 28, 2010 Έχω ένα test.txt το οποίο είναι για παράδειγμα:σήμερα αέρας σήμερα σήμερα σήμερασήμερα αέραςαέρας σήμερα σήμεραεγώ έφαγα σήμερα 30.40 μήλα σήμερασήμερα σήμερα σήμερασήμερα σήμερα αέρας σήμερα σήμεραθέλω να μου γυρνάει "έφαγες 30.40" τοfor /f "skip=4 tokens=4 delims= " %%A in (test.txt) DO @echo έφαγες %%Aναι μεν μου γυρνάει το 30.40 αλλά επίσης το ένα "σήμερα" της τελευταίας γραμμής.πως μπορώ να κρατήσω μόνο το πρώτο περιστατικό (30.40);ευχαριστώ
Inglor Μάρτιος 29, 2010 #2 Μάρτιος 29, 2010 Στο unix υπάρχει αντίστοιχη εντολή που λέγεται cut και του δίνεις αρχή και τέλος από μία γραμμή.Για το παραπάνω κάτι σε cut -c17-22 θα τύπωνε τους χαρακτήρες 18 εως και 22 δηλαδή τα νούμερα.Πιθανόν να υπάρχει και αντίστοιχο για MSDOS.
Volrath Μάρτιος 29, 2010 Author #3 Μάρτιος 29, 2010 Περιμένω τον Jaco, Lord of the Batch να μου δώσει τα φώτα του. Για να δώσω λίγες περισσότερες πληροφορίες: Φτιάχνω ένα benchmarking tool απο την UDK, και θέλω να διαβάσω ένα log το οποίο θα περιέχει την εξής γραμμή (σταθερά θα βρίσκεται στην 15η γραμμή του log, οτιδήποτε είναι σε bold θα αλλάζει)9441 frames collected over 163.07 seconds, disregarding 0.00 seconds for a 57.90 FPS average, 98.61 percent of time spent > 30 FPSκαι θέλω να μου γυρνάει το 57.90.Δοκίμασα ::== results.bat@echo offsetLocal EnableDelayedExpansionfor /f "tokens=* delims= " %%a in (test.log) do (echo %%a | find "seconds for a" > nulif not errorlevel 1 set str=%%a)for /f "tokens=12 delims= " %%a in ('echo !str!') do (set myvar=%%aecho myvar=!myvar!)::==αλλά εκτός ότι δε δουλεύει, μου φτιάχνει ένα αρχείο 30 (επειδή έχει το >30 μέσα στο log ενώ εχω δηλώσει setLocal EnableDelayedExpansion..)edit:Πήγα μέσω κολοπετινίτσας και το έφτιαξα τελικά. Απλά πήρα το .log, έβγαλα το string που μου έβγαζε και αυτό αποτελέσματα με το batch του πρώτου post μέσω findstr /v και που βγάζει μόνο το θεμιτό...θα προτιμούσα κάποια πιο καλή λύση βέβαια αλλά τι να κάνεις...
unstoppable Μάρτιος 29, 2010 #4 Μάρτιος 29, 2010 Πάντως ρίξε μια ματιά στο Powershell, πολύ πιο ισχυρό από τα απλά batch scripts.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.