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-ID: 180732

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

Ausgedruckt am: 26.11.2024 um 10:11 Uhr

sinsizer
sinsizer 19.02.2012 um 13:08:30 Uhr
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
Tranministrator
Tranministrator 19.02.2012 um 13:51:19 Uhr
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
sinsizer
sinsizer 19.02.2012 um 14:07:31 Uhr
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
Tranministrator
Tranministrator 19.02.2012 um 14:38:23 Uhr
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