Jump to content

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


Volrath
 Share

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 και που βγάζει μόνο το θεμιτό...θα προτιμούσα κάποια πιο καλή λύση βέβαια αλλά τι να κάνεις...

Edited by Volrath
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...