Il y a eu beaucoup de questions posées et de réponses sur les paramètres du fichier batch en ce qui concerne le% * mais je n'ai pas trouvé de réponse pour cela.l'équivalent du fichier de commandes de l'extension de paramètre unix avec des guillemets
Existe-t-il une syntaxe équivalente dans les fichiers batch qui peut effectuer le même comportement que "$ @" dans unix.
Certains contexte:
@echo off
set MYPATH=%~dp0
set PYTHON=%MYPATH%..\python\python
set BASENAME=%~n0
set XTPY=%MYPATH%..\SGTools\bin\%BASENAME%.py
"%PYTHON%" "%XTPY%" %*
Ceci est le fichier .bat qui est utilisé un proxy pour appeler un script python. Donc, je passe tous les paramètres (sauf le nom du script) au script python. Cela fonctionne bien jusqu'à ce qu'il y ait un paramètre entre guillemets et/ou contienne des espaces.
Dans les scripts shell, vous pouvez utiliser "$ @" pour prendre chaque paramètre et le placer entre guillemets. Y a-t-il quelque chose que je puisse faire pour reproduire ce processus?
Exemple Appels:
xt -T sg -t "path with possible spaces" -sum "name with spaces" -p <tool_name> -o lin32 lin64 win32 <lots of other options with possibilities of spaces>
La xt commande/fichier contient simplement le code ci-dessus parce que l'exécutable réel est le code python dans un autre dossier. Donc le but est de créer un paquet autonome où vous n'ajoutez qu'un répertoire (répertoire xbin) à votre chemin.
Faites-vous référence aux variables d'environnement que vous définissez ou au contenu de '% *'? Peux-tu donner quelques exemples? –
@Keith_CE: Vous pouvez utiliser PowerShell et se débarrasser de toutes ces bêtises. –
@Sinan Je fais référence au contenu de% *. L'exemple et l'explication ci-dessus aident-ils à avoir plus de sens? –