Batch-Skript - Verketten Sie fortlaufende Nummern in Dateien, um die Namen eindeutig zu halten

Ich arbeite an einem Skript zum Kopieren von Dateien in einen Ordner, der dem Namen der Datei entspricht, und habe diesen Teil mit einer FOR-Schleife ausgearbeitet, die prüft, ob der Zielordner vorhanden ist, und kopiert die Dateien, nachdem überprüft wurde, ob dies der Fall ist . Beispiel: 11-01111_ABC_DEF.pdf wird in / 11/0111 / eingefügt. Die Länge kann um ein oder zwei Zeichen variieren, das Format ist jedoch konsistent. Ich habe mein Basisskript unten kopiert.

Mein Problem ist, dass manchmal eine Datei mit dem gleichen Namen verarbeitet werden muss. Wie kann ich eine Nummer bis zum Ende der Datei verketten, wenn sich bereits eine oder mehrere Kopien der Datei im Zielordner befinden?

setlocal enableextensions enabledelayedexpansion
for %%x in (*.PDF *.TXT) do (
  set "source="C:\files"
  set "dest=R:\"  
  set "filename=%%x"
  set "prefix=!filename:~0,2!"
  set "folder=!filename:~3,5!"

  if not exist !dest!\!prefix!\!folder! MOVE !filename! !source!\failed 
  if exist !source!\!filename! MOVE !filename! !dest!\!prefix!\!folder! 
)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage