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이 있는 long
as라는 변수를 설정한 다음 (텍스트 파일에서 999줄을 초과하면 0을 더 추가할 수 있음) 다음 의 마지막 세 문자로 라는 변수를 설정합니다. ) . 마지막으로 해당 라인에 대한 폴더가 이미 있는지 확인하고, 존재하지 않으면 . 질문이 있으면 저에게 알려주세요. 내가 제안한 것보다 거기까지 가는 더 빠른 방법이 있었을 수도 있지만, 이 방법을 사용하면 그곳을 여행하는 동안 몇 가지 사항을 변경할 수 있습니다.count
new
long
!long:~-3!
%dir%\!new! %%A