Невозможно увеличить переменную

Невозможно увеличить переменную

Я хотел бы создать папку для каждой строки в моем текстовом файле, например, «[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. Он устанавливает переменную с именем longas countс двумя нулями перед ней, чтобы соответствовать вашей схеме именования (вы можете добавить больше нулей, если у вас больше 999 строк в текстовом файле), затем он устанавливает переменную с именем newas последние три символа long(отсюда и !long:~-3!). Наконец, он проверяет, есть ли уже папка для вашей строки, и если её нет, он создаёт эту папку с %dir%\!new! %%A. Напишите мне, если у вас есть какие-либо вопросы; возможно, был более быстрый способ добраться туда, чем я предложил, но это позволяет вам изменить пару вещей по пути туда.

Связанный контент