Não é possível incrementar uma variável

Não é possível incrementar uma variável

Gostaria de criar uma pasta para cada linha do meu arquivo txt, por exemplo "[023] Texto na 23ª linha do arquivo".

Estou usando o código abaixo, mas diz que a sintaxe está incorreta. Ao dividi-lo em partes e usar comentários pude perceber que iftambém é um problema, mas não consegui resolvê-lo.

@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

Aqui está um exemplo do que eu gostaria de ter... Gostaria de ter apenas o título em vez de ter que escrever todos os números em todas as linhas...

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Responder1

Para criar uma pasta em um diretório para cada linha de um arquivo de texto, tudo que você precisa é isto:

@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

Você não precisa necessariamente ter variáveis, mas acho que isso torna mais fácil escrever esse tipo de coisa. forpercorrerá seu arquivo de texto e atribuirá o texto da linha ao parâmetro %%Ae adicionará um número à countvariável. Ele define uma variável chamada longcomo countcom dois zeros na frente dela para se ajustar ao seu esquema de nomenclatura (você pode adicionar mais zeros se ultrapassar 999 linhas em seu arquivo de texto) e, em seguida, define uma variável chamada newcomo os três últimos caracteres de long(portanto o !long:~-3!). Por fim, ele verifica se já existe uma pasta para sua linha e, caso não exista, cria essa pasta com %dir%\!new! %%A. Fale comigo se tiver alguma dúvida; pode ter havido uma maneira mais rápida de chegar lá do que a que propus, mas isso permite que você altere algumas coisas na viagem até lá.

informação relacionada