Ho un file batch che esegue un programma per ogni file tiff in una cartella. Il programma analizza l'immagine e scrive il risultato in un file nella cartella. Se eseguo questo a mano ogni cosa funziona bene. Se eseguo il Batchfile, non ci sono file scritti.
Il Programma, le immagini e il Batchfile sono tutti nella stessa cartella.
il programma è chiamato così: for %%i in (.\*.tif) do cpix_laengs.exe %%i
In Case può importare che il fileoutput sia realizzato da questo comando:
outputfile = ("./out-laengs__" + argv1 + ".txt");
ofstream efile(outputfile, std::ofstream::out)
Mi piacerebbe sapere perché non ci sono file scritti e come evitare questo problema. Quindi non devo eseguire il programma per tutti i file a mano.
echo
comando allo script, in modo da poter vedere quali comandi vengono tentati, come in for %%i in (.\*.tif) do echo cpix_laengs.exe %%i
. Potrebbe rivelare cosa sta andando storto.
cpix_laengs.exe .\43-3.TIF
o "cpix_laengs.exe .\43-3.TIF"
a seconda del formato ma non stampa l'altro output che mi aspetto dal programma. Ma come già detto se lo inserisco direttamente nella shell funziona con o senza quotazioni.
%CD%
al echo
comando, come in for %%i in (.\*.tif) do echo In directory %CD%: cpix_laengs.exe "%%i"
.
for %%i in (.\*.tif) do cpix_laengs.exe "%%i"
.