Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Nummerierung einer Textdatei mit fortlaufender Nummer

Frage Entwicklung Batch & Shell

Mitglied: Tranministrator

Tranministrator (Level 1) - Jetzt verbinden

19.02.2012 um 11:53 Uhr, 5847 Aufrufe, 4 Kommentare

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
Mitglied: sinsizer
19.02.2012 um 13:08 Uhr
Hallo Robs,

Ich versuch´s mal

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.

01.
@echo off & setlocal enabledelayedexpansion 
02.
 
03.
set /p count=<count 
04.
set pre=AT_25210 
05.
for /f %%i in ('dir /s /b V:\test\*.txt') do ( 
06.
	move %%i V:\testneu\%pre%_%date:.=%_!count!.txt 
07.
	set /a count+=1 
08.
	echo !count!>count 
09.
	)
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
Bitte warten ..
Mitglied: Tranministrator
19.02.2012 um 13:51 Uhr
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
Bitte warten ..
Mitglied: sinsizer
19.02.2012 um 14:07 Uhr
Der Ordner "testneu" muss vorher existieren. Move legt keine Verzeichnisse an.

01.
 if not exist "testneu" md "testneu"
Zum Umbenennen "move" durch "ren" ersetzten. (Zum kopieren "copy", "xcopy" oder "robocopy")

01.
@echo off & setlocal enabledelayedexpansion 
02.
 
03.
set /p count=<count 
04.
set pre=AT_25210 
05.
for /f %%i in ('dir /s /b V:\test\*.txt') do ( 
06.
	ren %%i %pre%_%date:.=%_!count!.txt 
07.
	set /a count+=1 
08.
	echo !count!>count 
09.
	)
Bitte "Formatierungshilfe" benutzen.

mfg sinsizer
Bitte warten ..
Mitglied: Tranministrator
19.02.2012 um 14:38 Uhr
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
Bitte warten ..
Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...

Multimedia & Zubehör
gelöst Iphone 6 prob (10)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...