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);ευχαριστώ Link to comment Share on other sites More sharing options...
Inglor Μάρτιος 29, 2010 #2 Κοινοποίηση Μάρτιος 29, 2010 Στο unix υπάρχει αντίστοιχη εντολή που λέγεται cut και του δίνεις αρχή και τέλος από μία γραμμή.Για το παραπάνω κάτι σε cut -c17-22 θα τύπωνε τους χαρακτήρες 18 εως και 22 δηλαδή τα νούμερα.Πιθανόν να υπάρχει και αντίστοιχο για MSDOS. Link to comment Share on other sites More sharing options...
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 και που βγάζει μόνο το θεμιτό...θα προτιμούσα κάποια πιο καλή λύση βέβαια αλλά τι να κάνεις... Link to comment Share on other sites More sharing options...
unstoppable Μάρτιος 29, 2010 #4 Κοινοποίηση Μάρτιος 29, 2010 Πάντως ρίξε μια ματιά στο Powershell, πολύ πιο ισχυρό από τα απλά batch scripts. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.