배치 파일 (tickets.bat
)을 가지고 있고 다른 티켓을 만들 때마다 여러 변수를 설정하고 변수를 텍스트 파일에 반향시킴으로써 티켓 번호를 1로 올라갑니다. number.txt
파일을 만들어이 작업을 시도하고 루프를 통과하여 새 티켓을 만들 때마다 %pnumber%
을 텍스트 파일로 설정 한 다음 %number%
을 %pnumber%
에 1을 더한 값으로 설정합니다. 그러나 %pnumber%
은 설정을 계속 유지합니다. number.txt
파일에 숫자 1이 들어 있어도 변경되지 않는 경우에도 0으로 설정됩니다. 내 문제는 내가 뭔가를 누락하지 않는 한 %pnumber%
는 항상 0으로 설정한다는처럼변수를 텍스트 파일의 숫자와 동일하게 설정하십시오. 배치
:start
cls
echo Enter Ticket Info Here:
set /p name="Name:"
echo Press Enter to Show Ticket Preview
set /a pnumber=C:\Batch\ticket\number.txt
set /a number=%pnumber%+1
echo %number% > "C:\Batch\ticket\number.txt"
echo %name% Ticket Number %number%
pause
goto start
그것은 보이는이 내가 가진 것입니다. 기본적으로 배치 작업을 닫고 다시 열어도 항상 %number%
을 1로 늘려야하므로 .txt
파일을 사용했습니다. 텍스트 파일이나 그 밖의 숫자에 숫자가 표시되지 않습니까? 그것은 한 줄에 하나의 숫자입니다. 고맙습니다.
파일이 너무 PNUMBER가 설정되어 있지 않습니다 읽을 수 없습니다. 답안에 set/p 사용을 참조하십시오. 변수를 검사하기 위해 echo를 추가하면 (echo var = % var %)이 같은 문제를 빨리 볼 수 있습니다. 또한, "Press enter ..."메시지 뒤에 일시 중지가 필요합니다. – sjoy
@sjoy 왜 pnumber를 설정하지 않았습니까? 왜/p를/a로 사용합니까? 내가 그랬을 때 당신이 말한대로 잘 작동했는데 왜 그렇게했는지 궁금합니다. 또한 팁에 변수를 검사하는 데 에코를 추가해 주셔서 감사합니다. – TonyStark
두 가지 이유가 pnumber 설정되지 않음 : 파일에 대한 리디렉션이 없지만 set/a가 리디렉션 기호를 수학 연산자로 읽으므로 실패한 경우에도 실패했습니다. @sashaDee가 설명하는대로/a (산술)를 설정합니다. SET에 대한 [here] (http://ss64.com/nt/set.html)을 읽고 사이트에서 "리디렉션"을 검색하십시오. 그런 다음 CMD 명령을 찾습니다. SS64를 즐겨 찾기에 추가하고 문제가 생길 때 먼저 사용하십시오. 좋아. (BTW, 여러 의견에서 동일한 질문이 필요하지 않습니다.) – sjoy