Ligne de commande Windows: Non évaluation de la variable d'environnement
-
11-07-2019 - |
Question
J'aimerais fournir le texte brut faisant référence à une variable d'environnement à une commande au lieu d'évaluer la variable d'environnement.
J'en ai besoin pour configurer BizTalk à partir de la ligne de commande, par exemple:
BTSTask.exe AddResource -ApplicationName: App1 -Type: System.BizTalk: BizTalkAssembly -Overwrite -Source: .. \ Schemas \ bin \ development \ App1.Schemas.dll -Destination:% BTAD_InstallDir% \ App1.Schemas.dll
Cette commande ajoute une ressource à une application BizTalk. Je souhaite que la destination soit% BTAD_InstallDir% \ App1.Schemas.dll. Cependant, il évalue actuellement la variable d’environnement (à rien) et utilise \ App1.Schemas.dll.
Est-il possible d'échapper ou de désactiver l'évaluation de cette variable d'environnement lors de l'analyse \ de l'exécution de cette commande?
J'ai essayé d'échapper au premier et aux deux caractères de pourcentage avec une carotte (^), mais cela n'a pas arrêté l'évaluation.
[EDIT] Lorsque j'exécute cette commande à l'invite de commande, elle ne remplace pas la variable d'environnement. Toutefois, lorsque je l'exécute en tant que script, vous ne savez pas pourquoi c'est différent?
La solution
Avez-vous essayé:
%%BTAD_InstallDir%%
dans votre script?
Cela devrait empêcher le script d'interpréter la variable et il transmettrait % BTAD_InstallDir%
au programme.
Autres conseils
Essayez echo ^% chemin ^% dans une invite de commande, elle imprime ...
chemin
au lieu d’agrandir la variable d’environnement, les éléments suivants devraient donc fonctionner pour vous, comme suggéré par Mikeage
BTSTask.exe AddResource -ApplicationName: App1 -Type: System.BizTalk: BizTalkAssembly -Overwrite -Source: .. \ Schemas \ bin \ development \ App1.Schemas.dll -Destination: ^% BTAD_InstallDir ^% \ App1.Schemas .dll
Essayez ^% au lieu de%.
Essayé:
C:\PrgCmdLine\Unix\echo.exe "%"JAVA_HOME"%"
Vous avez:
%JAVA_HOME%
[EDIT] En effet, C: \ PrgCmdLine \ Unix \ echo.exe ^% JAVA_HOME ^%
fonctionne aussi et est plus simple ...
[EDIT 2] Pour mémoire: j'ai utilisé l'écho de UnxUtils pour avoir le comportement d'un programme simple. Le comportement intégré de l'écho est légèrement différent, du moins pour les signes% cités.