无法增加变量

无法增加变量

我想为我的 txt 文件中的每一行创建一个文件夹,例如“[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变量,在它前面有两个零以适合您的命名方案(如果您的文本文件中的行超过 999,您可以添加更多零),然后它会设置一个名为的变量,最后三个字符(因此是)。最后,它会检查是否已经有您的行的文件夹,如果不存在,它会使用 来创建该文件夹。如果您有任何疑问,请告诉我;可能有比我建议的更快的方法来实现这一点,但这允许您在旅途中更改几件事。longcountnewlong!long:~-3!%dir%\!new! %%A

相关内容