2017-10-13 4 views
5

Je viens d'installer R sur un nouvel ordinateur Microsoft Windows 7 et je suis en cours d'exécution dans l'erreur suivante lors de l'utilisation en ligne de commande:problème lors de l'appel exécutable dans un chemin qui possède un espace

"C:\Program Files\R\R-3.3.2\bin\Rscript.exe" --version 
'C:\Program' is not recognized as an internal or external command, 

programme exécutable ou un fichier batch.

Notez que j'ai ajouté au-dessus des guillemets autour du chemin avec un espace. Et que je l'ai ajouté dans le chemin du système:

;C:\Program Files\R\R-3.3.2\bin\

Fait intéressant:

  1. si je viens d'appeler ce Rscript.exe --version lui donne la même erreur, ce qui est très bizarre: si elle le trouve, pourquoi Ne peut-il pas le courir!?! La seule explication que je peux trouver est que l'erreur se produit lorsque la recherche d'une dépendance de Rscript.exe
  2. J'ai aussi remarqué que cela fonctionne "C:\Program Files\R\R-3.3.3\bin\x64\Rscript.exe" --version (les deux dossiers ...\bin et ...\bin\x64 ont un Rscript.exe exécutable)

Enfin, je confirme qu'il s'agit d'une question spécifique à R car tous les autres exécutables que j'ai essayé dans un sous-dossier de Program Files peuvent être appelés via la même interface de ligne de commande!

+1

Votre titre Q semble sans rapport avec votre Q? – MichaelChirico

+0

@MichaelChirico Ce n'est pas vraiment une question R :-) –

+1

Impossible de reproduire ceci. L'appel de '>" C: \ Program Files \ R \ R-3.3.3 \ bin \ Rscript.exe "--version' a abouti à ' R scripting frontend version 3.3,3 (2017-03-06) ' – Heikki

Répondre

0

Découvrez

C:\Users>Rscript --help 
Usage: /path/to/Rscript [--options] [-e expr [-e expr2 ...] | file] [args] 

--options accepted are 
    --help    Print usage and exit 
    --version   Print version and exit 
    --verbose   Print information on progress 
    --default-packages=list 
         Where 'list' is a comma-separated set 
         of package names, or 'NULL' 
or options to R, in addition to --slave --no-restore, such as 
    --save    Do save workspace at the end of the session 
    --no-environ  Don't read the site and user environment files 
    --no-site-file  Don't read the site-wide Rprofile 
    --no-init-file  Don't read the user R profile 
    --restore   Do restore previously saved objects at startup 
    --vanilla   Combine --no-save, --no-restore, --no-site-file 
         --no-init-file and --no-environ 

'file' may contain spaces but not shell metacharacters 
Expressions (one or more '-e <expr>') may be used *instead* of 'file' 
See also ?Rscript from within R 

Poursuivant votre théorie selon laquelle une certaine dépendance est en faute, j'espère que --verbose indiquerait quels autres fichiers RSCRIPT essaie de lire. Pas de chance. Incidemment, presque aucune de ces options ne sont utilisables pour moi à moins que je ne fournisse aussi des commandes à Rscript - sinon il continue de se plaindre du "nom du fichier manquant". Donc, avec l'une de ces possibilités, vous pouvez aller avec quelque chose comme

C:\Users>Rscript --verbose -e print(2+2) 

Cela étant dit, vous pouvez encore poursuivre votre théorie en utilisant les options comme --no-environ, --no-site-file, --vanilla, etc., pour faire sauter un fichier dépendances et voir si cela vous mène quelque part.

2

J'ai essayé de reproduire votre problème et j'ai trouvé une chose dans votre question: Vous dites que cela ne fonctionne pas:

"C:\Program Files\R\R-3.3.2\bin\Rscript.exe" --version 
'C:\Program' is not recognized as an internal or external command, 

Mais cela ne:

"C:\Program Files\R\R-3.3.3\bin\x64\Rscript.exe" --version 

Il semble que vous utilisez R-3.3.3 dans l'exemple qui fonctionne et R-3.3.2 dans l'exemple qui ne fonctionne pas.

Je suppose que si vous changez à

"C:\Program Files\R\R-3.3.3\bin\Rscript.exe" --version 

il devrait fonctionner.