2012-08-06 3 views
0

을 처리하기 위해,이 파일은배치 스크립트 내가 설정 파일이 파일

Machine_IP = <IP Address> 
Machine_Name = <Machine name> 
User_Name = <UID> 
ERRORCODE = 8000 
.. 

마찬가지로 mach.conf 같다. 내가 일괄 스크립팅에 대해 인터넷에서 읽을 수 있었지만 & 간단한 배치 스크립트를 작성할 수 있음에도 불구하고 Windows 배치 스크립트를 처음 사용했습니다. 하지만 배치 스크립트를 사용하여 파일을 처리하는 위치를 찾지 못했습니다. ERRORCODE = 8000 을 변경하고 8000을 8001로 바꾸고 싶습니다.

일괄 스크립팅을 사용하여이를 수행하는 방법. 링크 나 힌트를 제공해주세요.

감사합니다 ...

답변

1

내가 필요하지 않을 수 있습니다 코드의 비트를 추가했지만 프로그램이 < 's 및 > 년대 인용 부호가 조작 할 수 있도록했습니다. 그것은이하는 모두는 그들에게 ^, 그래서 <이 ^>이됩니다^<>이되는 사전 펜던입니다.

@echo off 
setlocal enabledelayedexpansion 
if exist config.tmp del config.tmp 
for /f "tokens=1* delims== " %%x in (config.cnf) do call :processFile "%%x" "%%y" 
move config.tmp config.cnf > nul 
echo File Updated 
endlocal 
goto :eof 

:processFile 
set "Var=%~1" 
set "Val=%~2" 

:: Add Escape Code to the greater-than and less-than symbols so they don't 
:: act as pipes and create errors. 
set "Var=%Var:<=^<%" 
set "Var=%Var:>=^>%" 
set "Val=%Val:<=^<%" 
set "Val=%Val:>=^>%" 

if "%Var%"=="ERRORCODE" set /a Val=%Val% + 1 

echo %Var% = %Val%>> config.tmp 
+0

만 처리 왜 하나'<>'가 아니라도 '& | "^'몇 가지 이유를 들어 – jeb

+0

@jeb 1)'<> '영업에서 제공하는 의사 데이터에 포함된다?. 비록 실제 데이터에 있을지는 모르겠지만 2) 내 예제에서 직접하는 방법을 외삽 할 수 있어야한다 .3) 추가하는 것은 더 많은 작업이었을 것이다 .4) 이러한 캐릭터 중 어떤 것이 실제 구성 파일에 있어야하므로 불필요한 복잡성과 혼란이 될 것입니다. 실제 예제에서 보았 듯이 코드의 1/3은 이미 작성되어 있고 추가 문자는 두 줄의 코드가 더 필요합니다. –

관련 문제