Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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
Kommentar vom Moderator Biber am 01.06.2011 um 06:33:22 Uhr
Verschoben von "Entwicklung" nach "Batch & Shell".
GELÖST

Batch script Zähler Dateinamen

Frage Entwicklung Batch & Shell

Mitglied: zbyszek

zbyszek (Level 1) - Jetzt verbinden

31.05.2011, aktualisiert 01.06.2011, 5002 Aufrufe, 7 Kommentare

Hallo zusammen.
Nach ca 8 Std probieren bin ich am Ende

Ich ziehe täglich mit einem Batch-Script per ftp eine Datei vom Server in einen Logfiles-ordner (kein Problem soweit).

Die Logfiles sollen nicht überschrieben werden.

D.h.: Die erste Datei Log.txt soll in Alt_Log1.txt umbenannt werden.
Am nächsten Tag kommt erneut eine Log.txt da rein.
Die Alt_Log1.txt soll nun ins Alt_Log2.txt umbenannt werden und die Log.txt ins Alt_Log1.txt
oder wäre es nicht einfacher die neue Log.txt sofort ins Alt_log2.txt usw.?

Habe es bereits mit Abfragen:

if exists Alt_log1.txt ren Log.txt Alt_log2.txt probiert

aber da ist kein zähler / variable für Alt_log2.txt in ....log3.txt usw.

Wie kann ich also abfragen welche Datei (höhste Zahl) ist, damit ich die täglich neue Log.txt in Alt_log_xxx+1 ändern kann?

ich hoffe es ist verständlich erklärt.

Danke und VG
Mitglied: bastla
31.05.2011 um 22:12 Uhr
Hallo zbyszek und willkommen im Forum!

Eigentlich sollte es ja genügen, die neueste Datei zu suchen:
for /f "delims=" %%i in ('dir /b /a-d /od Alt_log_*.txt') do set "Neueste=%%i"
Wie Du dann an die Nummer kommst, scheinst Du ja schon zu wissen ...

Grüße
bastla
Bitte warten ..
Mitglied: Clijsters
31.05.2011 um 22:16 Uhr
Kurz und knackig:
01.
for /L %%X in (0,1,100) DO echo %%X 
02.
Ausgabe: 
03.
04.
05.
06.
07.
... 
08.
100 
09.
REM Oder: 
10.
 
11.
Set Hatzelknatzel=1 
12.
Set /A hatzelknatzel=%hatzelknatzel%+1 
13.
Auch hier wird hochgezählt. Aus dem Dateinamen kannst du theoretisch die Zahl herausziehen und dann %Zahlenname%+1 rechnen.
Ist das ungefähr nach deinen Vorstellungen?
Ich denke, das Einbauen in dein jetziges Batch ist nicht allzu schwierig...

Gruß
Dominique

[EDIT]
Zitat von bastla:
Hallo zbyszek und willkommen im Forum!

Eigentlich sollte es ja genügen, die neueste Datei zu suchen:
for /f "delims=" %%i in ('dir /b /a-d /od Alt_log_*.txt') do set 
> "Neueste=%%i" 
> 
Wie Du dann an die Nummer kommst, scheinst Du ja schon zu wissen ...

Grüße
bastla
Da macht man sich mal gemütlich auf den Pott und schon kommt wieder jemand, der einem zeigt, dass man eigentlich nichts kann

Naja, man gibt sein Bestes
Bitte warten ..
Mitglied: mathe172
31.05.2011 um 22:18 Uhr
Hallo,

versuchs mal hiermit:
01.
setlocal enabledelayedexpansion 
02.
pushd "C:/Logs/" 
03.
for /f "tokens=2 delims=g." %%A in ('dir /b /o:d "Alt_Log*.txt"') do if not defined LastFile set "LastFile=%%A" 
04.
for /l %%A in (%LastFile%,-1,1) do ( 
05.
set /a "FileNumber=%%A + 1" 
06.
ren Alt_Log%%A.txt Alt_Log!FileNumber!.txt 
07.
08.
ren Log.txt Alt_Log.txt 
09.
popd
-Ungetestet

MfG,
Mathe172
[Edit: War wohl etwas spät...]
Bitte warten ..
Mitglied: zbyszek
01.06.2011 um 10:09 Uhr
Danke erstmal für die schnellen Vorschläge.
Leider funktioniert das immer noch nicht
"Der angegeben Pfad kann nicht gefunden werden" und "Dateiname existiert bereits oder die Datei kann nicht gefunden werden"
Bitte warten ..
Mitglied: zbyszek
01.06.2011 um 10:20 Uhr
leider auch nicht

ich blicke jetzt noch weniger durch als vorher. Wie bekomme ich aus dem dateinamen die "Zahl" raus: für "Daten_alt_4.txt" wäre das die 4

Im Ordner habe ich jetzt: Daten_Alt_1.txt bis ...4.txt und die Daten.txt.
Für diese Daten.txt soll jetzt die 4 als Zahl gezogen werden und beim Umbenennen der Daten.txt in Daten_Alt_5.txt verwendet werden "(4+1)"

@Echo off

If exist c:\Test\Zahler\*alt*.txt goto alt

:neu

echo neue ist da

for /f "delims=" %%i in ('dir D* /b /a-d /od Daten.txt') do set "neue=%%i"

set a=2

echo %neue% ist die neue

set /A a=a+1

rem ren %neue% Daten_Alt_%a%.txt

goto ende

:alt

echo alte ist daaaa

REm for /f "skip=1

for /f "delims=" %%i in ('dir /b /a-d /od Daten_Alt*.txt') do set "alte=%%i"

echo %alte% ist die alte

If exist C:\Test\Zahler\Daten.txt goto neu

goto ende

:ende

REM echo die neue %neue% ist jetzt %alte%
Bitte warten ..
Mitglied: zbyszek
01.06.2011 um 11:09 Uhr
nicht so wirklich

probiere gerade so:

set a=1

for /f .....................

set /A a=a+1

ren %Neueste% Alt_log_%a%

oder so...?????????????
Bitte warten ..
Mitglied: mathe172
01.06.2011 um 13:28 Uhr
Hallo,

meinst du meinen Code? - Wenn ja, hast du in Zeile 2 den Pfad angepasst?

MfG,
Mathe172
Bitte warten ..
Ähnliche Inhalte
Sonstige Systeme
Batch Dateinamen zerlegen (5)

Frage von Mummel zum Thema Sonstige Systeme ...

Windows 10
gelöst Vbs oder batch zum Ändern von Dateinamen ab Zeichenkette (13)

Frage von vbaGast zum Thema Windows 10 ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
Zu viele Variablen in Batch-Script? Speicherproblem? (2)

Frage von dolsch zum Thema Batch & Shell ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (12)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...