En oikein tiennyt, kummalle alueelle tämän olisi laittanut. Värkkään nimittäin pienimuotoista IDE:tä C-kielelle ja kääntäjänä käytän gcc:tä. Ajan gcc:n VB:n Shell-komennolla tällä tavalla:
Shell "gcc testi.c -o testi.exe"
Ja kaikki toimii aivan kuten pitää ja gcc luo "testi.exe":n lähdekoodista "testi.c". Koodissa saattaa olla kuitenkin myös virheitä, joten haluaisin, että gcc tallentaisi mahdollisesti tulleet virheet tiedostoon. Tätä varten on olemassa oma parametri, jonka lisään rivin perään:
Shell "gcc testi.c -o testi.exe 2> errori.txt"
Mutta enääpä ei toimikaan. Kääntäjä kyllä ajetaan, mutta se ei luo exeä eikä virhetiedostoa. Komentoriviltä ajettuna toimii kyllä normaalisti ja virheen sattuessa luodaan virhetiedosto ja ilman virheitä luodaan exe, mutta VB:n Shellillä ei. Mikähän voisi olla vikana? Eikö Shellin pitäisi toimia aivan samalla tavalla kuin komentorivillä annetun käskyn?
Ilmeisesti Shell-funktion kanssa ei voi käyttää komentorivillä toimivaa tulostuksenohjausta. WinAPIn ShellExecute-funktio ei tuntunut toimivan sen paremmin. Epähuomiossa kääntäjälle ilmoitetaan parametriksi myös >-merkin jälkeinen osuus. Yksi ratkaisu voisi kuitenkin olla BAT-tiedosto, jonne ensin kirjoitetaan kaikki tarvittavat käännöskomennot ja joka sen jälkeen käynnistetään.
BAT-tiedosto osoittautui hyvin toimivaksi ratkaisuksi. Kiitos vinkistä!
Kokeile:
Shell "cmd /c komento > tiedosto"
Aihe on jo aika vanha, joten et voi enää vastata siihen.