dal file batch chiamato Programma non scrive file nella cartella


1

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.


1
Ci sono spazi nei nomi dei file immagine? Se è così, hai bisogno di doppi apici, come in for %%i in (.\*.tif) do cpix_laengs.exe "%%i".
AFH

No non ci sono spazi nei nomi dei file. Ma il percorso completo contiene uno spazio e un carattere speciale tedesco.
F. Kühne

Ti suggerisco di aggiungere temporaneamente un 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.
AFH

Grazie per l'idea, l'ho già provato in un modo leggermente diverso ma ho dimenticato di parlarne. Non funziona. Si stampa 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.
F. Kühne

Questo non ha molto senso, a meno che l'attuale unità o directory non cambi. Puoi controllare questo aggiungendo %CD% al echo comando, come in for %%i in (.\*.tif) do echo In directory %CD%: cpix_laengs.exe "%%i".
AFH
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.