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 if
tambié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...
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. for
recorrerá su archivo de texto y asignará el texto de la línea al parámetro %%A
y agregará un número a la count
variable. Establece una variable llamada long
como count
con 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 new
como 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í.