Exécuter le programme avec Space Char dans FilePathBonjour à tous,
actuellement, j'ai du mal à exécuter une commande runprogram avec un chemin de fichier contenant un espace :
myPath = "C:\Users\FilePath\Test.py"
myInfo = runprogram(executable("python"), options({myPath}),readfunction("text"));
Cela fonctionne parfaitement, mais lorsque le chemin du fichier contient un espace, le chemin est coupé, le fichier est donc introuvable :
myPath = "C:\Users\File Path\Test.py"
myInfo = runprogram(executable("python"), options({myPath}),readfunction("text"));Peut-être que quelqu'un peut m'aider - merci,
DG
Modélisation statistique avancéeÉtudes de consommation et de marchéIngénierie Qualité et ProcédésRe : Exécuter le programme avec espace Char dans FilePathSalut Craige,
merci beaucoup - en fait j'ai vu le post mais je n'ai pas réussi à l'adapter.
Merci encore, fonctionne parfaitement !
Re : Exécuter le programme avec espace Char dans FilePathCommentaire précédent sur l'utilisation des guillemets : https://community.jmp.com/t5/Discussions/Unable-to-parse-speechmarks-quot-quot-into-powershell-using/mp/245968/highlight/true#M48328
Vous pouvez utiliser une fenêtre CMD (la fenêtre noire de la boîte DOS) pour voir comment Windows veut que la commande soit faite avec des guillemets :
Use quotation marks around parameters with embedded spacesUse quotation marks around parameters with embedded spacesUse quotation marks around parameters with embedded spacesUtilisez des guillemets autour des paramètres avec des espaces intégrés
Une fois que cela fonctionne, vous devez l'intégrer à une chaîne JMP, ce qui nécessite une sorte d'échappement car JMP utilise également des guillemets. Pour cet exemple, échappez simplement les deux guillemets en utilisant \!"
filename = "c:\Program Files\Common Files\System\Ole DB\oledbjvs.inc";
write("filename = ", filename); // no quotation marks
txt = runprogram(executable("python"), options({
"\!"" || filename || "\!""
}),readfunction("text"));Utilisez la fonction « écrire » dans JMP, et non la fonction « imprimer », qui ajoute plus de confusion en entourant le texte imprimé de guillemets.
Vous pouvez également intégrer les guillemets dans la chaîne, mais le JSL ci-dessus est ce dont vous avez besoin si vous obtenez le nom de fichier à partir de quelque chose comme la fonction filesInDirectory ... vous devez toujours les ajouter. Vous pouvez ajouter des guillemets même s'ils ne sont pas nécessaires. Voir le lien en haut si vous avez des guillemets au milieu du nom de fichier pour une raison quelconque.