2016-06-10 1 views
1

좋아, 게임을 저장할 때 문자의 통계를 txt 파일에 쓰는 배치 프로그램이 있습니다. 그러나 해당 통계를 올바르게로드 할 수 없습니다. 콘솔 명령 및 구문을 적절하게 저장하여 type 명령을 사용할 수 있다고 생각하고 콘솔의 변수를 txt 파일의 변수로 설정하는 명령을 실행할 것입니다. txt 파일에 모든 변수를 쓰는 것과 같은 간단한 방법이 있습니까? 변수의여러 변수가있는 텍스트 파일을 일괄 처리 콘솔에 적용하는 방법

샘플 코드가 기록되는 : 나는 텍스트 파일 생각에 다음과 같이 쓴

if not exist "%~dp0\Users" md "Users" (
Echo set CharName=%UserCharacter% 
Echo set Level=%Level% 
Echo set Health=%Health% 
Echo set ExpCap=%ExpCap% 
)> "%~dp0\Users\%UserCharacter%.txt" 

참조 나는 파일을로드 할 수 있으며 파일이 있던 무슨에 변수를 설정합니다.

작동하지 않았습니다. 궁금한 점이 있으면 물어보십시오. 나는 지금 그림을 게시 할 수 없다. 그러나 나는 나의 점을 가로 질러 알아 들었다.

+0

('md' 명령 다음에) 코드 스 니펫에 줄 바꿈이나'&'가 없습니까? – aschipfl

답변

1

정말 가깝습니다. type 대신에 for 루프를 통해 텍스트 파일을 실행하십시오.

for /f "usebackq delims=" %%A in ("%~dp0\Users\%UserCharacter%.txt") do %%A 

당신이 자동으로 실행됩니다 가지고있는 set 명령. 그것은
for /f 루프를 작동하는 방법

는 (이 경우 파일을) 명령, 파일 또는 문자열을 받아 선으로 그 일 라인의 출력을 처리합니다. 일반적으로하는 for /f 루프에 전달 인용 된 문자열 대신 문자열로 취급 될 것입니다,하지만 당신은 당신의 경로에 공백이 있기 때문에, 그 필요 -

usebackq는 따옴표 것은 파일이라는 for 루프를 알려줍니다 루프가 오류를 발생시키지 않도록 따옴표로 묶어야합니다.

delims=은 루프에 파일의 각 줄을 구분하지 않도록 지시합니다. 일반적으로 줄은 공백과 탭으로 공백으로 나뉩니다.

%%A은 문자열에서 첫 번째 구분 기호로 구분 된 토큰을 포함하는 변수입니다. 그러나 문자열을 구분하지 않도록 루프에 지시 했으므로 %%A에는 전체 문자열이 포함됩니다.

"%~dp0\Users\%UserCharacter%.txt"이 파일입니다.

do

는 모든 (라인 또는 라인에 (과 하부 행의 첫 번째 ) 사이 아무것도 나머지 하나) 수행되어야하는 코드 블럭의 나머지 부분이 루프는 잠시 후에 그 루프를 말한다 여전히 진행 중이다.

%%A은 텍스트 파일에 저장 한 set 명령입니다. 배치가 텍스트를 대체하고 평가하는 방법 때문에 실제로 저장된 명령이 실행 중입니다!

+0

신난다. 어떻게 작동하는지 자세히 설명해 주시겠습니까? 그 구문은, 그렇지 않다면 내가 입력 한 것의 기본 작동을 알고 싶을 것입니다. 나는 for 부분을 이해하지만 실제로 "usebackq delims ="또는 %% A – Lasutriv

+0

을 얻지는 않습니다. FOR/F 명령과 옵션에 대한 자세한 내용은 [원본 설명서] (https : // technet. microsoft.com/en-us/library/bb490909.aspx) – Filipus

+0

링크를 사용해 주셔서 감사합니다. – Lasutriv

0

당신은 다음 배치 파일을 사용하여 변수를 저장할 수 있습니다

@Echo off 

if not exist "Users" md "Users" 
if exist Users\%UserCharacter%.bat del Users\%UserCharacter%.bat 
>>Users\%UserCharacter%.bat Echo @Echo off 
>>Users\%UserCharacter%.bat Echo set CharName=%UserCharacter% 
>>Users\%UserCharacter%.bat Echo set Level=%Level% 
>>Users\%UserCharacter%.bat Echo set Health=%Health% 
>>Users\%UserCharacter%.bat Echo set ExpCap=%ExpCap% 
>>Users\%UserCharacter%.bat Echo Echo Variables loaded 

Echo Variables saved 

이것은 사용자 하위 폴더에 박쥐 %의 UserCharacter의 %라는 배치 파일을 만듭니다. 예를 들어 캐릭터 이름이 Virtusal 인 경우 Users \ Virtusal.bat을 입력하여 해당 변수를 다시로드합니다.

+0

나는 이것을 합법적 인 방법보다 더 좋아하지만, 이해하기 때문에 더 그렇습니다. 제 친구 주위에서 일 해줘서 고마워요. – Lasutriv

+0

이 사이트에 처음 참여하고 평판을 얻으려는 시도에 처음으로 답변을 받아 들일 때 답을 표시해주십시오. – Filipus

관련 문제