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?

È stato utile?

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
scroll top