2012-12-19 6 views
2

Voici mon problème: Je veux exécuter un script R en mode batch à partir de scala. Voici le code que j'essaie d'utiliser:Scala - Commande système - R Batch - guillemet simple ne fonctionnant pas pour l'échappement du bloc d'argument

import scala.sys.process._ 
"R CMD BATCH --no-save --no-restore '--args a=1' /path/test.r".! 

La commande fonctionne lorsque je la découpe et la colle dans un terminal. Mais quand je l'essaye par scala, « --args est interprété comme le fichier de script et je reçois l'erreur fatale:

Fatal error: cannot open file ''--args': No such file or directory 

Tout fonctionne si je retire le bloc argument:

import scala.sys.process._ 
"R CMD BATCH --no-save --no-restore /path/test.r".! 

Toute conjecture sur la façon de restaurer l'exécution "normale" attendue? .

Merci à l'avance,

BHLB

+0

Quel système d'exploitation êtes-vous runnin g la commande est-elle activée? – yakshaver

Répondre

1

Si vous utilisez R sur Windows, vous devez utiliser « s au lieu de « s Par exemple, cela fonctionne sur les fenêtres:

R CMD BATCH --no-save --no-restore "--args a=1" /path/test.r 

Lors de l'appel de Scala, vous pouvez utiliser des chaînes littérales pour des raisons pratiques:

"""R CMD BATCH --no-save --no-restore "--args a=1" /path/test.r""".! 
Questions connexes