web-dev-qa-db-fra.com

Erreur d'invite de commandes 'C: \ Program' non reconnue en tant que commande interne ou externe, programme utilisable ou fichier de commandes

J'essaie d'exécuter la commande de lot suivante. La commande a été extraite de IDE et son fonctionnement est confirmé. Obtenir l'erreur mentionnée ci-dessous.

J'ai essayé quelques variantes avec des guillemets doubles, mais elles n'ont pas fonctionné. Même sur PowerShell, il a le même message.

C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe F:\CP001\source\Meter\Main.c -D Hardware_P20E -D Calibration_code -D _Optical -D _Configuration_TS0382 -o F:\CP001\Temp\C20EO\Obj\ --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --debug -D__MSP430F425 -e --double=32 --dlib_config C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\lib\dlib\dl430fn.h -Ol --multiplier=16 --segment __data16=DATA16 --segment __data20=DATA20

Command Prompt

Mise à jour:

Essayer la solution avec des guillemets perturbe le compilateur

enter image description here

36
Rohan Sharma

Si un répertoire contient des espaces, mettez-le entre guillemets. Cela inclut le programme que vous appelez, pas seulement les arguments

"C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe" "F:\CP001\source\Meter\Main.c" -D Hardware_P20E -D Calibration_code -D _Optical -D _Configuration_TS0382 -o "F:\CP001\Temp\C20EO\Obj\" --no_cse --no_unroll --no_inline --no_code_motion --no_tbaa --debug -D__MSP430F425 -e --double=32 --dlib_config "C:\Program Files\IAR Systems\Embedded Workbench 7.0\430\lib\dlib\dl430fn.h" -Ol --multiplier=16 --segment __data16=DATA16 --segment __data20=DATA20
43
James Hunt

Cela semble arriver de temps en temps avec des programmes très sensibles aux lignes de commande, mais une option consiste à utiliser simplement le chemin DOS à la place du chemin Windows. Cela signifie que C:\Program Files\ serait résolu à C:\PROGRA~1\ et généralement éviter tout problème d’espacement.

Pour obtenir le chemin court, vous pouvez créer un fichier de commandes rapide qui reprend le chemin court:

@ECHO OFF
echo %~s1

Ce qui s'appelle alors comme suit:

C:\>shortPath.bat "C:\Program Files"
C:\PROGRA~1
10
rjzii

Il vous suffit de conserver les fichiers de programme entre guillemets & le reste de la commande n’a pas besoin de guillemet.

C:\"Program Files"\IAR Systems\Embedded Workbench 7.0\430\bin\icc430.exe F:\CP00 .....
9
DheerajS

J'ai rencontré un problème similaire en utilisant la ligne de commande Windows pour le script R, Rscript.exe, qui est très sensible aux espaces dans le chemin. La solution consistait à créer un chemin virtuel vers le dossier binaire à l'aide de la commande windows subst.

Les éléments suivants échouent: "C:\Program Files\R\R-3.4.0\bin\Rscript.exe"

Faire ce qui suit réussit:

subst Z: "C:\Program Files\R\R-3.4.0"
Z:\bin\Rscript.exe

La raison pour laquelle les solutions proposées ci-dessus n'ont pas fonctionné est évidemment liée à la résolution du chemin interne de l'exécutable Rscript.exe à partir de son répertoire de travail (qui contient un espace) plutôt que de confondre la ligne de commande Windows avec cet espace. Donc, en utilisant ~ ou " pour résoudre le problème en ligne de commande est devenu sans objet. L'exécutable doit être appelé dans un chemin dépourvu d'espaces.

0
Soren