La condition à l'intérieur du for
doit être analysé par l'analyseur de lot avant de pouvoir passer à la clause IN() sous la forme d'une commande exécutable. Pour conserver des caractères spéciaux comme <,>, &, |,^ou%, vous devez leur échapper dans le script. Le caractère d'échappement dans Batch est "^".
Évadez la barre verticale avec un caret:
FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :8080') DO TaskKill.exe /PID %P
Je pourrais aussi ajouter que lors de l'enregistrement en tant que .bat, les caractères pour cent doivent être échappé aussi bien. Au lieu de "% P", vous devrez utiliser "%% P".
Ce serait une bien meilleure réponse si vous deviez [éditer] et expliquer * pourquoi * l'affiche devrait le faire. Ce serait une réponse éducative qui bénéficierait non seulement au demandeur de cette question, mais à d'autres qui le verront à l'avenir. * Faites ceci * ne fournit aucune information sur les raisons pour lesquelles il est nécessaire de le faire. –
Merci beaucoup! – mikezang
Beaucoup mieux répondre. :-) –