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
Mise à jour:
Essayer la solution avec des guillemets perturbe le compilateur
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
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
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 .....
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.