Domanda

Oggi ho dovuto aggiungere un'attività a un file Ant Apache. La riga di comando avrebbe dovuto essere simile a

myprogram --param1 --param2 path\somefile 2> path\logfile

Il problema era che se avessi usato qualcosa di simile al seguente

<exec executable="$(myprogram)"
  <arg value="--param1">
  <arg value="--param2">
  <arg path="$(somefile)">
  <arg value="2>">
  <arg path="$(logfile)">
</exec>

sono stati citati tutti gli argomenti, quindi il comando era simile al seguente:

myprogram "--param1" "--param2" "path\somefile" "2>" "path\logfile"

che non è male e particolarmente bello se hai spazi nel tuo file / percorso, ma distrugge la pipe nel file di log (invece, il programma pensa che ci siano due argomenti di file aggiuntivi " 2 > " e " path \ logfile ").

Ho aggirato questo problema chiamando invece uno script batch che vuole solo i file come parametri, ma mi chiedevo: è possibile farlo senza una soluzione?

È stato utile?

Soluzione

Quando si esegue " myprogram --param1 --param2 path \ somefile 2 > percorso \ logfile " ;, gli argomenti del programma terminano con " 2 > " ;. Il reindirizzamento dei file è un'operazione della shell, che non viene utilizzata dall'interno di formica. Se dai un'occhiata ai documenti per task ant exec , vedrai che supporta il reindirizzamento tramite l'attributo output .

Altri suggerimenti

Hai provato <arg line="..." />?

L'attività ant exec ha un parametro di output in cui è possibile specificare il file di registro senza richiedere il piping della riga di comando, combinato con il parametro append per determinare se il file di output deve essere sovrascritto o accodato.

Ho avuto un uguale problema come l'antipasto dell'argomento. Su una riga di comando di esecuzione Java avevo bisogno di aggiungere i file di origine come argomenti separati, non come un argomento con virgolette attorno ad essi. Ho usato il tag <arg value="..." />, ma l'uso di <arg line="..." /> come suggerito da nullptr ha risolto il mio problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top