No se puede incrementar una variable

No se puede incrementar una variable

Me gustaría crear una carpeta para cada línea de mi archivo de texto, por ejemplo "[023] Texto en la línea 23 del archivo".

Estoy usando el código siguiente, pero dice que la sintaxis es incorrecta. Al dividirlo en partes y usar comentarios pude ver que iftambién es un problema pero no pude resolverlo.

@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

Aquí hay un ejemplo de lo que me gustaría tener... Me gustaría tener sólo el título en lugar de tener que escribir cada número en cada línea...

ingrese la descripción de la imagen aquíingrese la descripción de la imagen aquí

Respuesta1

Para crear una carpeta en un directorio para cada línea de un archivo de texto, todo lo que necesita es esto:

@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

No es necesario tener variables, pero creo que hace que escribir este tipo de cosas sea más fácil. forrecorrerá su archivo de texto y asignará el texto de la línea al parámetro %%Ay agregará un número a la countvariable. Establece una variable llamada longcomo countcon dos ceros delante para que se ajuste a su esquema de nomenclatura (puede agregar más ceros si supera las 999 líneas en su archivo de texto), luego establece una variable llamada newcomo los últimos tres caracteres de long(por lo tanto el !long:~-3!). Finalmente, verifica si ya existe una carpeta para su línea y, si no existe, crea esa carpeta con %dir%\!new! %%A. Gritame si tienes alguna pregunta; Puede que haya habido una manera más rápida de llegar allí de lo que propuse, pero esto te permite cambiar un par de cosas en el viaje hasta allí.

información relacionada