La commande FOR / DO donne "Inattendu à ce moment-là" lors de l'exécution de l'invite de commande

Essayer d'exécuter directement les commandes directement à partir de l'invite de commandes.

FOR /f "delims=[] tokens=2" %%a in ('ping %computername% -4 -n 1 ^| findstr "["') do (set ip=%%a) 

Bien qu'il fonctionne bien à partir d'un fichier batch, si vous exécutez collé directement dans une invite de commande, j'ai l'erreur suivante:

 %%a was unexpected at this time. 

Comment dois-je le changer pour fonctionner directement à partir de l'invite de commande et ne PAS nécessiter un fichier batch?

Exigences de longue histoire:

J'ai l'obligation de fournir essentiellement une liste de commandes qui peuvent être exécutées via copier / coller dans une invite de commande, SANS utiliser un fichier batch (il suffit d'y aller, pas mes exigences mais celles qui m'ont été fournies et ne peuvent pas être modifiées) . J'ai une commande ultérieure qui échoit% ip% à un fichier .txt.

Lors du référencement Pour la variable de boucle For dans un fichier batch, vous devez doubler le pourcentage de signes (c.-à-d.: %%a ), mais si vous faites cela lorsque vous exécutez la commande directement à l'invite, cela ne fonctionnera pas. Vous devez les modifier en un seul signe de pourcentage ( %a ).

Peut-être vérifiez cette autre question SU pour plus d'informations: quel est le pourcentage de signe (% et %%) dans un argument de fichier par lots?