Cercando di elaborare i file utilizzando un batch. Nessuna uscita, non succede nulla
-
27-09-2019 - |
Domanda
Sto cercando di passare i file uno per uno (devo mettere i puntini che, dal momento eseguibile accetta solo un file alla volta). Quindi, a mio gruppo ho follwoing:
FOR /F %file IN ('dir /b /s *.css') DO CALL myExecutable.exe %file
I dovrebbe vedere fuori i file nella stessa cartella, ma non succede nulla, non gli errori vengono visualizzati sia. Mi sto perdendo qualcosa qui?
Soluzione
Hai diversi errori nel tuo esempio:
- nome del parametro
FOR
è solo una singola lettera -
CALL
viene utilizzato per chiamare un altro file batch o una subroutine nel file batch esistente, non eseguibili - il parametro
FOR
dovrebbe essere rapportata con due%, quando nel file batch - è necessario utilizzare un delimitatore non-spazio, se la directory si esegue questo comando o qualsiasi sottodirectory, o se uno dei file ha uno spazio nel nome
Con questi in mente, ecco il comando giusto si dovrebbe usare:
for /f "usebackq delims=|" %%f in (`dir /b /s *.css`) do myexecutable.exe "%%f"
È qui la mia risposta ad una simile domanda SO, in cui io do ulteriori dettagli sull'uso FOR
per elaborare tutti i file in una directory.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow