[batch] inhoud v.e. txt-file als parameter aan een exe geven

Pagina: 1
Acties:

  • Ferdy
  • Registratie: Augustus 2002
  • Laatst online: 23-03 19:21
Ik zit met het volgende probleem:

ik heb een map, met 1 bestand erin, dat altijd de extensie .dat of .set heeft. Dat bestand moet als parameter worden meegegeven aan een dos-programma.

Nou had ik het volgende bedacht:

dir *.dat /w /a-d | find /i ".dat" > result.txt
dir *.set /w /a-d | find /i ".set" >> result.txt


result.txt bevat dan de filenaam van het bestand wat ik wil gebruiken, maar hoe kan ik deze als parameter aan mijn programma meegeven?

programma.exe | type result.txt werkt niet, net zoals: programma.exe < result.txt en type result.txt | programma.exe

Wie kan mij helpen een oplossing te vinden voor dit probleem?

  • Trinsec
  • Registratie: Februari 2003
  • Laatst online: 23:36

Trinsec

Huffi-Muffi-Guffi

Hrm, ik heb er niet teveel verstand van, is nogal lang geleden, maar kan je geen variabelen gebruiken? Zoals > %1, en dan programma.exe %1 als ze allemaal in 1 batch file zitten?

when the Darkness fell upon us
when the Evil Ones came!
Creatures from the darkest pits of hell they were.
Trinsec's Journal


  • Ferdy
  • Registratie: Augustus 2002
  • Laatst online: 23-03 19:21
Trinsec schreef op 01 november 2003 @ 11:06:
Hrm, ik heb er niet teveel verstand van, is nogal lang geleden, maar kan je geen variabelen gebruiken? Zoals > %1, en dan programma.exe %1 als ze allemaal in 1 batch file zitten?
ik heb dit geprobeerd:

dir *.dat /w /a-d | find /i ".dat" > %1
programma.exe %1


maar toen deed het programma helemaal niets.. zelfs geen foutmelding

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 00:43

Vae Victis

Dark Lord of the Sith

Als ik me het goed herinner kun je het op meerdere manieren doen:
type bestand.txt > program.exe
of
program.exe < bestand.txt

Wat voor soort programma is het?
Als je program.exe /? doet geeft hij dan niet aan hoe je file als parameter door moet geven?
Kan ook zijn dat je bv gewoon program.exe -f file.txt moet doen.

[ Voor 45% gewijzigd door Vae Victis op 01-11-2003 11:19 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 29-04 13:16
OS - specifieke scripting topics (zoals dit) horen niet thuis in P&W, maar in WOS of NOS , afhankelijk van het OS dat je gebruikt.
Aangezien het hier over DOS - batch files gaat, move 'k m naar NOS

p&w -> nos

https://fgheysels.github.io/


  • Ferdy
  • Registratie: Augustus 2002
  • Laatst online: 23-03 19:21
Vae Victis schreef op 01 november 2003 @ 11:17:
Als ik me het goed herinner kun je het op meerdere manieren doen:
type bestand.txt > program.exe
of
program.exe < bestand.txt

Wat voor soort programma is het?
Als je program.exe /? doet geeft hij dan niet aan hoe je file als parameter door moet geven?
Kan ook zijn dat je bv gewoon program.exe -f file.txt moet doen.
Bij type result.txt > programma.exe wordt de programma.exe overschreven met de inhoud van de result.txt.

Bij programma.exe < result.txt zegt het programma dat ik geen parameter heb opgegeven, terwijl de bestandsnaam wel in result.txt staat.

Als ik de .dat file normaal als argument opgeef werkt het wel, dus programma.exe blaat.dat .

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 00:43

Vae Victis

Dark Lord of the Sith

code:
1
2
in batch file: for %%I in (*.dat) do call program.exe %%I
commandline: for %I in (*.dat) do call program.exe %I

Dat is hem ;)

[ Voor 33% gewijzigd door Vae Victis op 01-11-2003 11:57 ]


  • Regman_XP
  • Registratie: Januari 2003
  • Laatst online: 04-02 20:06
Volgens mij moet het volgende werken:

FOR %%A IN (*.DAT) DO CALL PROGRAMMA %%A

Voor meer batch scripts moet je eens kijken bij "Rob van der Woude's Scripting pages: Batch Files for DOS, Windows (all flavours) and OS/2; Rexx; HTML; JavaScript" http://www.robvanderwoude.com/

Edit: Net te laat!

[ Voor 19% gewijzigd door Regman_XP op 01-11-2003 11:58 ]


  • Ferdy
  • Registratie: Augustus 2002
  • Laatst online: 23-03 19:21
Dit is inderdaad de oplossing die ik zoek. Bedankt! _/-\o_
Pagina: 1