変数を増分できません

変数を増分できません

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、変数に数値を追加します。 は、命名規則に合うように先頭に 2 つのゼロが付いたというcount変数を設定し(テキスト ファイルの行数が 999 を超える場合は、ゼロをさらに追加できます)、の最後の 3 文字(したがって) が付いた という変数を設定します。最後に、行のフォルダーが既に存在するかどうかを確認し、存在しない場合は でフォルダーを作成します。質問があればお知らせください。私が提案した方法よりも早くそこにたどり着く方法があったかもしれませんが、これにより、そこに行く途中でいくつかの変更を行うことができます。longcountnewlong!long:~-3!%dir%\!new! %%A

関連情報