[Batch] Besoin d'explication sur une variable

Besoin d'explication sur une variable [Batch] - Shell/Batch - Programmation

Marsh Posté le 30-07-2021 à 15:11:50    

Bonjour,
J'ai récupérer un script batch pour désinstaller un antivirus, ce script est très bien il fonctionne bien en local sur un PC le souci c'est quand je le passe par mon outil ITSM (Ivanti) de gestions de parc pour faire une désinstallation silencieuse il passe en échec.
Après différents tests je me suis rendu compte qu'il n'aime pas les caractère "~" qui sont dans différentes variables. Je l'ai retiré sur certaines et le script va plus loin.
Ma question est de savoir à cela sert ?  
 
Voici un exemple pris dans le script:
set searchResults= %%v)
set trapsVersion=%searchResults:~30%
echo Found Cortex XDR version: %trapsVersion%
echo Found Cortex XDR version: %trapsVersion% >> %logFile%
set trapsVersion=%trapsVersion:~0,5%
set trapsMainVersion=%trapsVersion:~0,2%
 
je ne vois pas trop a quoi correspond ~30 ou ~0.5 ...
 
Merci pour vos réponses.


Message édité par titis14 le 30-07-2021 à 15:12:47
Reply

Marsh Posté le 30-07-2021 à 15:11:50   

Reply

Marsh Posté le 30-07-2021 à 15:26:22    

Regarde CMD /?.
 
Au pif je dirais c'est une espèce de substr().

Reply

Marsh Posté le 30-07-2021 à 15:39:39    

Avec ta commande j'ai trouvé ça:
Le code de terminaison traite correctement les noms de fichiers contenant des
espaces ou d’autres caractères spéciaux, en plaçant des guillemets autour des
chemins correspondants. Si vous reculez le curseur et appelez ensuite la
terminaison, le texte à droite du curseur lorsque la terminaison est demandée
est ignoré.
 
Les caractères spéciaux qui requièrent des guillemets sont :
 <espace>
 &()[]{}^=;!'+,`~
 
Tu as surement raison exemple ici avec mon code:
set trapsVersion=%trapsVersion:~0,5%
set trapsMainVersion=%trapsVersion:~0,2%
 
Il doit récupérer une partie de la version dans la première ligne et dans la seconde une sous version par exemple.
Dans mon code au dessus de ces ligne il dans le registre chercher une version qui est la 7.3.2.26319


Message édité par titis14 le 30-07-2021 à 15:44:40
Reply

Marsh Posté le 18-08-2021 à 09:14:57    

Je confirme
 
Pour bien faire et t'éviter des problèmes écrit plutôt comme ceci

Code :
  1. set "trapsVersion=%trapsVersion:~0,5%"


 
Aide

Code :
  1. set /?
  2. ...
  3. La substitution de la variable d’environnement a été améliorée comme suit :
  4.     %PATH:ch1=ch2%
  5. développe la variable d’environnement PATH, remplaçant chaque
  6. occurrence de "ch1" dans le résultat développé par "ch2".  "ch2" peut être
  7. une chaîne vide pour supprimer toutes les occurrences de "ch1" de la sortie
  8. développée. "ch1" peut commencer par un astérisque, auquel cas
  9. la commande traitera la chaîne à partir du début et jusqu’à la première
  10. occurrence du reste de ch1.
  11. Vous pouvez aussi spécifier des sous-chaînes pour une expression.
  12.     %PATH:~10,5%
  13. développe la variable d’environnement PATH et utilise seulement 5
  14. caractères à partir du onzième (décalage de 10)  dans le résultat sous forme
  15. développée. Si la longueur n’est pas spécifiée, tout le reste de la valeur
  16. de la variable est traité. Si l’une des valeurs (décalage ou longueur)
  17. est négative, alors le nombre utilisé est la longueur de la valeur de la
  18. variable d’environnement ajoutée au décalage ou à la longueur donné.
  19.     %PATH:~-10%
  20. extrait les 10 derniers caractères de la variable PATH.
  21.     %PATH:~0,-2%
  22. extrait tous les caractères sauf les deux derniers de la variable PATH.
  23. ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed