Как применить %% к переменной в скрипте с входным параметром? - PullRequest
0 голосов
/ 21 мая 2010

Вчера я задал вопрос о том, как управлять %% переменной, не получая оценки. Ну, дело в том, что в моем случае это не работает ...

У меня есть файл .bat, который получает входной параметр. Позже я хочу использовать значение этого входного параметра и поместить% ...%, например:

call script.bat testValue

script.bat:

 set inputPar=%1
 set newValue=%%inputPar%%

Теперь я получаю:

 echo %inputPar%
testValue
 echo %newValue%
%inputPar%

Но я бы хотел получить:

echo %newValue%
 %testValue%

Это как-то возможно?

Ответы [ 2 ]

2 голосов
/ 21 мая 2010

Причина, по которой вы получаете эти результаты, заключается в том, что %%inputPar%% рассматривается как %% i n p u t P a r %% и %% становится буквальным %.

Вам нужно:

first.cmd:
    @echo off
    call script.cmd testValue
script.cmd:
    @echo off
    set inputPar=%1
    set newValue=%%%inputPar%%%
    echo %inputPar% should be testValue
    echo %newValue% should be %%testValue%%

Это дает вам %% % inputPar% %% и, опять же, %% становится буквальным % с %inputPar% становящимся testValue.

0 голосов
/ 21 мая 2010

Я нашел решение:

set inputPar =% 1

set inputParDollar = %%% inputPar %%%

:: installDir - это уже установленная переменная окружения

set installDirDollar = %%% installDir %%%

echo inputPar:% inputPar%

echo inputParDollar:% inputParDollar%

echo installDirDollar:% installDirDollar%


call script.bat testValue

inputPar: testValue

inputParDollar:% testValue%

installDirDollar:% D: \ testenv%

...