Riga di comando di Windows: non valutazione della variabile di ambiente
-
11-07-2019 - |
Domanda
Vorrei fornire il testo non elaborato facendo riferimento a una variabile di ambiente a un comando invece di valutare la variabile di ambiente.
Ho bisogno di questo per configurare BizTalk dalla riga di comando, ad esempio:
BTSTask.exe AddResource -ApplicationName: App1 -Type: System.BizTalk: BizTalkAssembly -Overwrite -Source: .. \ schemas \ bin \ sviluppo \ App1.Schemas.dll -Destination:% BTAD_InstallDir% \ App1.Schemas.dll
Questo comando aggiunge una risorsa a un'applicazione BizTalk. Voglio che la destinazione sia% BTAD_InstallDir% \ App1.Schemas.dll, tuttavia al momento sta valutando la variabile di ambiente (nulla) e usando \ App1.Schemas.dll.
È possibile sfuggire o disabilitare la valutazione di questa variabile d'ambiente mentre si analizza \ eseguendo questo comando?
Ho provato a sfuggire al primo e ad entrambi i caratteri percentuali con una carota (^), tuttavia questo non ha fermato la valutazione.
[EDIT] Quando eseguo questo al prompt dei comandi, non sostituisce la variabile di ambiente, tuttavia quando lo eseguo come script, hai qualche idea sul perché sia ??diverso?
Soluzione
Hai provato:
%%BTAD_InstallDir%%
nella tua sceneggiatura?
Ciò dovrebbe impedire allo script di interpretare la variabile e passerebbe % BTAD_InstallDir%
al programma.
Altri suggerimenti
Prova echo ^% path ^% nel prompt dei comandi che stampa ...
path
invece di espandere la variabile d'ambiente, quindi suppongo che quanto segue dovrebbe funzionare per te come suggerito da Mikeage
BTRask.exe AddResource -ApplicationName: App1 -Type: System.BizTalk: BizTalkAssembly -Overwrite -Source: .. \ Schemas \ bin \ development \ App1.Schemas.dll -Destination: ^% BTAD_InstallDir ^% \ App1.Schemas .dll
Prova ^% anziché%.
Hai provato:
C:\PrgCmdLine\Unix\echo.exe "%"JAVA_HOME"%"
Got:
%JAVA_HOME%
[EDIT] In effetti, C: \ PrgCmdLine \ Unix \ echo.exe ^% JAVA_HOME ^%
funziona anche ed è più semplice ...
[EDIT 2] Per la cronaca: ho usato l'eco di UnxUtils per avere il comportamento di un semplice programma. L'eco incorporato ha un comportamento leggermente diverso, almeno per i segni% tra virgolette.