2014-04-19 6 views
0
@echo off 
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Candle\KNT\Ver610\Primary\Environment\ >nul 
if %ERRORLEVEL% EQU 0 (
    echo "Key is added into 32 bit" 
    cd /d "%CANDLE_HOME%\logs" & (for /f "tokens=1,2 delims=|" %%a in (Account_Detail.txt) do set "value1=%%a"&set "value2=%%b") & cmd /v:on /c "(echo Windows Registry Editor Version 5.00& echo [HKEY_LOCAL_MACHINE\SOFTWARE\Candle\KNT\Ver610\Primary\Environment]& echo "CT_CMSTEST"="IP.SPIPE:#!value1!;IP.SPIPE:#!value2!")>ntenv.reg" & reg import ntenv.reg 
) else (
    echo "Key is added into 64 bit" 
    cd /d "%CANDLE_HOME%\logs" & (for /f "tokens=1,* delims=|" %%a in (Account_Detail.txt) do set "value1=%%a"&set "value2=%%b") & cmd /v:on /c "(echo Windows Registry Editor Version 5.00& echo [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Candle\KNT\Ver610\Primary\Environment]& echo "CT_CMSTEST"="IP.SPIPE:#!value1!;IP.SPIPE:#!value2!")>ntenv.reg" & reg import ntenv.reg 
    if EXIST %candle_home%\TMAITM6\kntcma.ini (
     echo CTIRA_SUBSYSTEM_ID=>>C:\IBM\ITM\TMAITM6\kntcma.ini 
     cd /d "%CANDLE_HOME%\logs" & (for /f "tokens=3,* delims=|" %%a in (Account_Detail.txt) do set "value3=%%a") & cmd /v:on /C "(echo CTIRA_HOSTNAME=%value3%_%computername%  .TYPE=REG_EXPAND_SZ>>C:\IBM\ITM\TMAITM6\kntcma.ini) else (
     echo CTIRA_SUBSYSTEM_ID=>>C:\IBM\ITM\TMAITM6_x64\kntcma.ini 
     cd /d "%CANDLE_HOME%\logs" & (for /f "tokens=3,* delims=|" %%a in (Account_Detail.txt) do set "value3=%%a") & cmd /v:on /C "(echo CTIRA_HOSTNAME=%value3%_%computername%  .TYPE=REG_EXPAND_SZ>>C:\IBM\ITM\TMAITM6_x64\kntcma.ini)) 

도와주세요. 여기를 클릭하십시오. 변경했으나 실행할 수 없습니다 ... 해당 명령을 실행하기위한 문자 제한이 있습니까? 두 가지 모두 명령이 있습니다. 달리는.텍스트 파일에서 값을 읽고 배치 파일에 값을 설정

cd /d "%CANDLE_HOME%\logs" & (for /f "tokens=3,* delims=|" %%a in (Account_Detail.txt) do set "value3=%%a") & cmd /v:on /C "(echo CTIRA_HOSTNAME=%value3%_%computername%  .TYPE=REG_EXPAND_SZ>>C:\IBM\ITM\TMAITM6\kntcma.ini 

도와주세요.

+0

배치 파일에서 여러 줄을 사용하는 것이 문제가됩니까? – foxidrive

+0

echo ABC = % value3 % _. TYPE = REG_EXPAND_SZ >> C : \ IBM \ ITM \ TMAITM6 \ kntcma.ini .........이 하나 (value3)도 전달됩니다 ... – Vimal2311

답변

0

찾는 file.txt와 소정 값있다 : 다음

192.168.1.1|192.168.1.2 

와이 작동해야

cd /d "%CANDLE_HOME%\logs" & (for /f "tokens=1,* delims=|" %%a in (file.txt) do set "value1=%%a"&set "value2=%%b") & cmd /v:on /c "(echo Windows Registry Editor Version 5.00& echo [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Candle\KNT\Ver610\Primary\Environment]& echo "CT_CMSTEST"="IP.SPIPE:#!value1!;IP.SPIPE:#!value2!")>ntenv.reg" & reg import ntenv.reg 
0

명령 줄 인수는 어떻게됩니까?

cd %CANDLE_HOME%\logs 
set "value1=%~1" 
set "value2=%~2" 
(echo Windows Registry Editor Version 5.00 
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Candle\KNT\Ver610\Primary\Environment] 
echo "CT_CMSTEST"="IP.SPIPE:#%value1%;IP.SPIPE:#%value2%" 
)>ntenv.reg 
reg import ntenv.reg 

그냥 my_bat.bat my_value1 my_value2과 비슷합니까?

아니면 그냥 내부 배관에 의해 분리 된 두개의 텍스트 항목과 동일한 logs 폴더 set "value1=my_value"..

+0

동일한 ... 그리고 my_bat.bat를 호출하십시오. 10.95.34.36 29.43.122.30 – Vimal2311

+0

은 같은 것을 사용하고 ... my_bat.bat 10.95.34.36 29.43.122.30 ...을 호출하지만 레지스트리에 액세스하는 중 오류가 발생합니다. – Vimal2311

관련 문제