Eine Variable kann nicht erhöht werden

Eine Variable kann nicht erhöht werden

Ich möchte für jede Zeile meiner txt-Datei einen Ordner anlegen, zum Beispiel „[023] Text in der 23. Zeile der Datei“.

Ich verwende den unten stehenden Code, aber er besagt, dass die Syntax falsch ist. Indem ich ihn in Teile zerlegte und Kommentare verwendete, konnte ich erkennen, dass es ifauch hier ein Problem gab, aber ich konnte es nicht lösen.

@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

Hier ist ein Beispiel dessen, was ich gerne hätte ... Ich hätte gerne nur den Titel, anstatt jede Zahl in jede Zeile schreiben zu müssen ...

Bildbeschreibung hier eingebenBildbeschreibung hier eingeben

Antwort1

Um für jede Zeile einer Textdatei einen Ordner in einem Verzeichnis zu erstellen, benötigen Sie lediglich Folgendes:

@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

Sie müssen nicht unbedingt Variablen haben, aber ich finde, dass es das Schreiben solcher Sachen einfacher macht. fordurchläuft Ihre Textdatei, weist den Text der Zeile dem Parameter zu %%Aund fügt der Variablen eine Zahl hinzu count. Es setzt eine Variable namens longas countmit zwei davorstehenden Nullen, um sie Ihrem Benennungsschema anzupassen (Sie können mehr Nullen hinzufügen, wenn Ihre Textdatei über 999 Zeilen hat), dann setzt es eine Variable namens newas mit den letzten drei Zeichen von long(daher das !long:~-3!). Schließlich prüft es, ob bereits ein Ordner für Ihre Zeile vorhanden ist, und wenn keiner existiert, erstellt es diesen Ordner mit %dir%\!new! %%A. Rufen Sie mich an, wenn Sie Fragen haben; es hätte vielleicht einen schnelleren Weg dorthin gegeben, als ich vorgeschlagen habe, aber so können Sie auf dem Weg dorthin noch ein paar Dinge ändern.

verwandte Informationen