Ho un problema con l'esecuzione di un altro comando all'interno di un comando FOR su Windows 7 Ultimate. Il comando for fa parte di un file batch e deve analizzare le uscite di un altro comando.Batch di Windows: comando di esecuzione con FOR/F - "comando non trovato"
solito questo:
for /f %%a IN ('tasklist') DO echo %%a
deve eseguire il comando "Tasklist" e l'uscita suoi risultati tramite eco. Ma ottengo sempre "comando non trovato".
Ho provato a eseguire il comando all'esterno del forloop e funziona. Ho anche provato a eseguire molti comandi esterni all'interno di for, ma ogni comando diceva "comando non trovato".
Ho provato anche gli esempi di questo post:
Batch: Execute command with quotes in for loop with piping to find
`m sicuro
- che i comandi esiste
- di aver preso visione e di esecuzione dei diritti ad esso
- che il mio utente è nel gruppo di amministratori
- che eseguo t comanda con "Esegui come amministratore"
Ma niente funziona su questo pc. Gli stessi comandi funzionano su un altro PC che esegue anche Windows 7 Ultimate.
Quindi qualcuno potrebbe avere un'idea che potrebbe non funzionare sul PC dove non vengono trovati tutti i comandi?
Ecco un esempio delle uscite della mia console quando provo con il comando "ls". ls.exe è un file eseguibile dal progetto gun4win e si trova nella stessa cartella in cui è in esecuzione il mio file batch. Le finestre sono in tedesco, quindi l'output dell'errore è anche in tedesco.
C: \ test> test_for.bat
C:\test>rem --- test a command stand-alone ---
C:\test>ls
ls.exe test_for.bat
C:\test>rem --- test same command in a FOR-Loop ---
C:\test>for /F "delims=" %a in ('ls') do echo FOR-OUTPUT: %a
Der Befehl "ls" ist entweder falsch geschrieben oder konnte nicht gefunden
werden.
montaggio finale: Il problema era valore errato per la variabile di sistema envoirement "ComSpec".
Ho modificato ComSpec in "Erweiterte Systemeigenschaften-> Erweitert-> Umgebungsvariaben-> Systemvariablen" in "C: \ Windows \ system32 \ cmd.exe" e il problema è stato risolto.
Grazie alla @foxidrive e @jeb
Il vostro scri pt usa una variabile con il nome 'path'? – foxidrive
... o 'pathext'? si potrebbe provare a eseguire lo script nella directory '% SystemRoot% \ System32 \', dove si trova il comando' tasklist' ... – aschipfl
Questo non importa dove si trova il comando. Ho anche provato un comando che si trova nella stessa cartella del mio batchfile. Il suo dice "comando non trovato" per tutto. Ma posso eseguire tutti i comandi all'esterno del for. Solo all'interno di "no" si trova – Radon8472