[CMD] filter output *.exe

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Emiel1984
  • Registratie: Maart 2005
  • Laatst online: 20-09 10:52

Emiel1984

Made in NL

Topicstarter
Ik ben een batch file aan het creëren om zodoende wat gegevens te loggen van een nieuwe software build...

De functies date en time kunnen makkelijk gefilterd worden:

%date:~4,2% geeft zo bijvoorbeeld de huidige dag.
%time:~0,2% geeft je het huidige uur.

Ik ben nu aan het zoeken naar een methode om de output van een *.exe te kunnen filteren. Echter is mijn dos kennis niet zo groot en vind ik voornamelijk websites die heel erg basic blijven en daarmee dus geen oplossing bieden voor wat ik wil bereiken.

[ Voor 13% gewijzigd door Emiel1984 op 11-02-2012 21:34 ]

[LTS][MTS][HTS]


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

De output is niet zo maar te filteren. Als een programma alleen naar het scherm output geeft, kan je daar met een batch-bestand gewoon niks mee. Wellicht dat die informatie naar een text-bestand geschreven kan worden, en je die met een batch-file kan uitlezen. Het ligt dus meer aan het executable bestand of je met die info wat kan doen.

Dus de belangrijkste informatie die nodig is om daar wat zinnigs op te zeggen is, geef je niet.

[ Voor 15% gewijzigd door RaZ op 11-02-2012 21:44 ]

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • Emiel1984
  • Registratie: Maart 2005
  • Laatst online: 20-09 10:52

Emiel1984

Made in NL

Topicstarter
Ik wil het revisienummer van svn filteren;
SubWCRev.exe "svn directory"

Die exe geeft mij dan output;
SubWCRev: 'svn directory'
Last committed at revision 2
Mixed revision range 1:2

Daaruit wil ik het nummer hebben dat na "Last committed at revision" komt.

[ Voor 4% gewijzigd door Emiel1984 op 11-02-2012 21:57 ]

[LTS][MTS][HTS]


Acties:
  • 0 Henk 'm!

Verwijderd

Misschien kan je de batch in powershell uitvoeren en daar een filter overheen gooien?

[string[]]$foo = (programma.exe). Zou dat werken?

Acties:
  • 0 Henk 'm!

  • zetje01
  • Registratie: Augustus 1999
  • Laatst online: 08:00
Er staat me iets van bij dat je met het PIPE commando de output van het ene programma laat invoeren in een ander programma. Meer weet ik er niet meer van; is zo'n 25 jr geleden. Misschien heb je er wat aan...

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Emiel1984 schreef op zaterdag 11 februari 2012 @ 21:31:
%date:~4,2% geeft zo bijvoorbeeld de huidige dag.
Toevallig Engelse versie van Windows? ;)
Ik ben nu aan het zoeken naar een methode om de output van een *.exe te kunnen filteren. Echter is mijn dos kennis niet zo groot en vind ik voornamelijk websites die heel erg basic blijven en daarmee dus geen oplossing bieden voor wat ik wil bereiken.
http://www.tomshardware.c...e-output-program-variable

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-08 14:24

ZaZ

Tweakers abonnee

Je kan de output doorsturen met het piper karakter naar een externe tool.
Op *nix gebruiken ze daar al eeuwen o.a 'grep' voor.
Ik snap eigenlijk niet waarom Windows niet zoiets heeft, maar dat terzijde.

http://www.wingrep.com/download.htm

Is de eerste grep die ik kan vinden en lijkt te werken via de commandline.
Dus bijv alle output tonen waar winlogon.exe in voorkomt:

code:
1
dir c:\ /s | grep winlogon.exe

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • Edd
  • Registratie: Januari 2001
  • Laatst online: 13:06

Edd

Misschien heb je iets aan het find-commando?
code:
1
SubWCRev.exe "svn directory" | find "Last committed at revision"

-


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 11:51
ZaZ schreef op zondag 12 februari 2012 @ 01:38:
Is de eerste grep die ik kan vinden en lijkt te werken via de commandline.
http://gnuwin32.sourceforge.net/

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • Emiel1984
  • Registratie: Maart 2005
  • Laatst online: 20-09 10:52

Emiel1984

Made in NL

Topicstarter
Ik heb even verder gezocht en powershell in gedachten gehouden (bedankt voor je reactie Darkstone).
De oplossing heb ik gevonden door wat verder te zoeken na de reacties van Pedorus en Edd:


code:
1
2
3
4
5
6
7
8
9
:: Log the output into a *txt file.
SubWCRev.exe "[i]svn directory[/i]" | find "Last committed at revision" >> templog.txt

:: Filter out the data
for /f "tokens=1* delims=Last " %%1 in (templog.txt) do set FileData=%%2
for /f "tokens=1* delims=committed " %%1 in ("%FileData%") do set FileData=%%2
for /f "tokens=1* delims=at " %%1 in ("%FileData%") do set FileData=%%2

echo " Number %FileData% "

[LTS][MTS][HTS]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Dat kan een stuk simpeler zonder temp-file. ;) Voorbeeldje:
>for /f "tokens=5" %a in ('echo Last committed at revision 2^| findstr "Last committed at revision"') do @set myvar=%a

>echo %myvar%
2

find is op mijn systeem een ander commando (cygwin).

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
'k zou de `skip=1` optie van `FOR /F` gebruiken om de eerste regel over te slaan. Handiger dan findstr.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1