tranministrator
Goto Top

Nummerierung einer Textdatei mit fortlaufender Nummer

Hallo liebe Admins,

Folgendes Szenario bietet sich an:

Textdatei wird von externem Programm erstellt, Bsp. BONUS_20111109_223118_738.TXT. Landet in einem Ordner V:\test
Dort soll aus der Datei folgendes werden AT_25210_20120219_1.txt (AT_25210 ist ein definierter Präfix und danach kommt das Datum und der Counter). Diese Datei wird dann verschoben.

Natürlich soll der Counter dann automatisch weiter zählen wenn eine neue Datei angelegt wird , am besten anhand von einer Datei wo der Countwert dann enthalten ist. So dass man diesen auch dann ggf. umstellen kann wenn man von vorne beginnen will.

AT_25210_20120220_2
AT_25210_20120221_3

Habt ihr so etwas schon mal realisiert? Wenn ja wie? Ich versuche dieses über CMD Shell zu realisieren. Bitte helft mir.

Mfg

Robs

Content-Key: 180732

Url: https://administrator.de/contentid/180732

Printed on: April 25, 2024 at 13:04 o'clock

Member: sinsizer
sinsizer Feb 19, 2012 at 12:08:30 (UTC)
Goto Top
Hallo Robs,

Ich versuch´s mal face-smile

Zuerst legst du eine Datei an (hier mit dem Namen "count") und schreibst z.b. eine "1" rein.
Dann brauchst du die folgende Batch nur noch auszuführen.

@echo off & setlocal enabledelayedexpansion

set /p count=<count
set pre=AT_25210
for /f %%i in ('dir /s /b V:\test\*.txt') do (  
	move %%i V:\testneu\%pre%_%date:.=%_!count!.txt
	set /a count+=1
	echo !count!>count
	)

Möchtest du die Nummerierung neu beginnen, oder ab einer anderen Zahl beginnen, änderst du einfach den Wert in der Datei "count".

Grüße Sinsizer
Member: Tranministrator
Tranministrator Feb 19, 2012 at 12:51:19 (UTC)
Goto Top
Hallo Sinsizer,

vielen Dank für dein Interesse/Hilfestellung

leider funktioniert das bei mir nicht:

@echo off & setlocal enabledelayedexpansion

set /p count=<count

set pre=AT_25210

for /f %%i in ('dir /b V:\test\*.txt') do (move %%i V:\test\test\%pre%_%date:.=%_!count!.txt

set /a count+=1

echo !count!>count

)


Er zählt zwar in der count Datei nach oben, doch es wird keine neue Datei unter dem neuen Pfad angelegt/hin bewegt.
Kannst du das auch so einrichten dass die Datei einfach nur umbenannt wird?


Mfg

Robs
Member: sinsizer
sinsizer Feb 19, 2012 at 13:07:31 (UTC)
Goto Top
Der Ordner "testneu" muss vorher existieren. Move legt keine Verzeichnisse an.

 if not exist "testneu" md "testneu"  

Zum Umbenennen "move" durch "ren" ersetzten. (Zum kopieren "copy", "xcopy" oder "robocopy")

@echo off & setlocal enabledelayedexpansion

set /p count=<count
set pre=AT_25210
for /f %%i in ('dir /s /b V:\test\*.txt') do (  
	ren %%i %pre%_%date:.=%_!count!.txt
	set /a count+=1
	echo !count!>count
	)

Bitte "Formatierungshilfe" benutzen.

mfg sinsizer
Member: Tranministrator
Tranministrator Feb 19, 2012 at 13:38:23 (UTC)
Goto Top
Hallo sinsizer,

klappt jetzt wunderbar in dieser Form:

echo off & setlocal enabledelayedexpansion

set /p count=<count

set pre=AT_25210


for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set dateiname=%%c%%b%%a

for /f %%i in ('dir /b V:\test\*.txt') do (


ren *.txt "%pre%_%dateiname%_!count!.txt"

set /a count+=1

echo !count!>count

)

Vielen Dank für deine Mühe!

mfg

Robs