無法增加變數

無法增加變數

我想為 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變數添加一個數字。它設定一個名為longas 的變量count,前面有兩個零以適合您的命名方案(如果文字檔案中的行數超過 999 行,則可以添加更多零),然後它設定一個名為newas 的最後三個字元的變數long(因此這!long:~-3!)。最後,它會檢查您的行是否已經存在一個資料夾,如果不存在,它會將該資料夾新增為%dir%\!new! %%A.如有任何疑問,請向我詢問;可能有比我建議的更快的方式到達那裡,但這可以讓您在旅途中改變一些事情。

相關內容