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 if
també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...
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. for
percorrerá seu arquivo de texto e atribuirá o texto da linha ao parâmetro %%A
e adicionará um número à count
variável. Ele define uma variável chamada long
como count
com 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 new
como 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á.