Jump to content



Βοήθεια για ένα batch file


Volrath

Recommended Posts

Έχω ένα 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

Στο unix υπάρχει αντίστοιχη εντολή που λέγεται cut και του δίνεις αρχή και τέλος από μία γραμμή.

Για το παραπάνω κάτι σε cut -c17-22 θα τύπωνε τους χαρακτήρες 18 εως και 22 δηλαδή τα νούμερα.

Πιθανόν να υπάρχει και αντίστοιχο για MSDOS.

Link to comment
Share on other sites

Περιμένω τον 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 off

setLocal EnableDelayedExpansion

for /f "tokens=* delims= " %%a in (test.log) do (

echo %%a | find "seconds for a" > nul

if not errorlevel 1 set str=%%a

)

for /f "tokens=12 delims= " %%a in ('echo !str!') do (

set myvar=%%a

echo myvar=!myvar!

)

::==

αλλά εκτός ότι δε δουλεύει, μου φτιάχνει ένα αρχείο 30 (επειδή έχει το >30 μέσα στο log ενώ εχω δηλώσει setLocal EnableDelayedExpansion..)

edit:

Πήγα μέσω κολοπετινίτσας και το έφτιαξα τελικά. Απλά πήρα το .log, έβγαλα το string που μου έβγαζε και αυτό αποτελέσματα με το batch του πρώτου post μέσω findstr /v και που βγάζει μόνο το θεμιτό...θα προτιμούσα κάποια πιο καλή λύση βέβαια αλλά τι να κάνεις...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.