1 votes

Tâche EXEC avec '|' dans les arguments

J'essaie d'exécuter une construction VS en utilisant incredibuild dans mon ANT script, mais pour une raison quelconque la tâche d'exécution échoue avec l'erreur suivante :

Win32 n'est pas reconnu comme une commande interne ou externe.

lorsque j'utilise le code suivant :

<arg line='buildconsole solution.sln /rebuild /cfg="Release|Win32"' />

Je pense que la fourmi script traite peut-être le '|' comme un délimiteur ou quelque chose comme ça....

Avez-vous une idée de la façon dont je pourrais faire fonctionner ce système ?

J'ai également essayé ce qui suit, mais rien ne me rapproche :

<arg line='buildconsole solution.sln /rebuild /cfg="Release&#124;Win32"' />

<arg value="buildconsole solution.sln /rebuild /cfg=&quot;Release|Win32&quot;" />

<arg value="buildconsole solution.sln /rebuild /cfg=&quot;Release&#124;Win32&quot;" />

2voto

Kevin Points 19613

Vous devez échapper au symbole du pipe en le faisant précéder de ^. Ainsi :

<arg line='buildconsole solution.sln /rebuild /cfg="Release^|Win32"' />

EDIT :

Vous êtes sûr que le caret ne fonctionne pas ? Il semble que oui dans cet exemple de fichier ant :

<?xml version="1.0" encoding="UTF-8"?>

<project name="Test" default="build" basedir=".">

    <target name="build">
        <exec executable="cmd">
            <arg line="/k echo cfg=&quot;Release^|Win32&quot;"/>
        </exec>
    </target>

</project>

1voto

Destroky Points 11

Hmm... Je viens d'essayer à nouveau et ça a marché, mais seulement après avoir changé en

<arg value="buildconsole solution.sln /rebuild /cfg=Release^|Win32" />

donc je suppose que les guillemets autour de Release^|Win32 n'étaient pas nécessaires si j'utilise la valeur.

Merci beaucoup !

0voto

Jacob B Points 1268

Je pense que le problème est que l'invite de commande Windows voit le | et le traite comme un opérateur "pipe". Peut-être que vous pouvez échapper au pipe en utilisant :

<arg line='buildconsole solution.sln /rebuild /cfg="Release\|Win32"' />

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X