변수를 증가시킬 수 없습니다

변수를 증가시킬 수 없습니다

txt 파일의 각 줄에 대해 폴더를 만들고 싶습니다(예: "[023] 파일의 23번째 줄에 있는 텍스트").

아래 코드를 사용하고 있는데 구문이 올바르지 않다고 나옵니다. 여러 부분으로 나누고 주석을 사용하여 이 if문제도 문제라는 것을 알 수 있었지만 해결할 수는 없었습니다.

@echo off
chcp 1252>nul
SETLOCAL DisableDelayedExpansion
set Nbres=0
FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ fnID_fr.txt"`) do (
    set "var=%%a"
    SETLOCAL EnableDelayedExpansion
    set "var=!var:*:=!"

    if %Nbres% leq 10 
    goto :set10
    if %Nbres% leq 100
    goto :set100
    goto :set0

:set100
    set DIGITS=0
    goto :set0
:set10
    set DIGITS=00
:set0

    if not exist "!Nbres! !var!" mkdir "!Nbres! !var!"

    set Nbres=%Nbres%+1

)
chcp %cp%>nul
pause

다음은 제가 갖고 싶은 것의 예입니다... 모든 줄에 모든 숫자를 쓰는 대신 제목만 갖고 싶습니다...

여기에 이미지 설명을 입력하세요여기에 이미지 설명을 입력하세요

답변1

텍스트 파일의 각 줄에 대해 디렉터리에 폴더를 만들려면 다음이 필요합니다.

@echo off

set "txt=C:\Your\Text\File.txt"
set "dir=C:\Directory\Where\You\Want\Your\Folders\Made"

setlocal enabledelayedexpansion
for /f "delims=" %%A in (%txt%) do (
    set /A count+=1
    set "long=00!count!"
    set "new=[!long:~-3!]"
    if not exist "%dir%\!new! %%A" md "%dir%\!new! %%A"
)

pause

반드시 변수가 있어야 할 필요는 없지만 이런 종류의 항목을 작성하는 것이 더 쉬워진다고 생각합니다. for텍스트 파일을 반복하고 행의 텍스트를 매개변수에 할당 %%A하고 변수에 숫자를 추가합니다 count. 이름 지정 체계에 맞게 앞에 두 개의 0이 있는 longas라는 변수를 설정한 다음 (텍스트 파일에서 999줄을 초과하면 0을 더 추가할 수 있음) 다음 의 마지막 세 문자로 라는 변수를 설정합니다. ) . 마지막으로 해당 라인에 대한 폴더가 이미 있는지 확인하고, 존재하지 않으면 . 질문이 있으면 저에게 알려주세요. 내가 제안한 것보다 거기까지 가는 더 빠른 방법이 있었을 수도 있지만, 이 방법을 사용하면 그곳을 여행하는 동안 몇 가지 사항을 변경할 수 있습니다.countnewlong!long:~-3!%dir%\!new! %%A

관련 정보