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
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, 4914 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

Mit freundlichen Grüßen,
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?

Mit freundlichen Grüßen,
Mathe172
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...