33968
Goto Top

Uhrzeit ausgabe im dateinamen formatieren

Halle erstmal.

Hier mein Batchprogramm:

@echo off
rem ***********************************************
rem ** Löscht im Verzeichniss "N:\SCAN" alle **
rem ** Dateien ohne die Unterordner zu verändern **
rem ** Ivan Vukovic 08.02.2007 **
rem ***********************************************

rem ** Variablen setzen (Name und Logdatei)

set Zusatz=%DATE%
set Zeit=%TIME%

set Name="01_Loeschen_Scan_%Zusatz%.txt"
set Name2="02_Loeschen_Scan_%Zusatz%_%Zeit%.txt"

echo %Name%
echo %Name2%
pause

set Logfile=C:\logfiles\%Name%
set Logfile2=C:\logfiles\%Name2%

echo %Logfile%
echo %Logfile2%
pause


if exist %Logfile% goto Logfile2 else goto Logfile1


:Logfile1

rem ** Schreiben der Logdatei

rem ** Schreiben der Startzeit
@echo Start Datum und Zeit .... >>%Logfile%
@echo on
date /t >>%Logfile%
time /t >>%Logfile%
@echo . >>%Logfile%
@echo . >>%Logfile%
C:
cd testbat_del

rem ** Loeschen der Dateien ohne Unterordner
del /F /S /Q C:\testbat_del\*.* >>%Logfile%
@echo . >>%Logfile%
@echo . >>%Logfile%

rem ** Schreiben der Endzeit
@echo End Datum und Zeit.... >>%Logfile%
@echo on
date /t >>%Logfile%
time /t >>%Logfile%
pause

Goto Ende


:Logfile2

rem ** Schreiben der Logdatei2

rem ** Schreiben der Startzeit
@echo Start Datum und Zeit .... >>%Logfile2%
@echo on
date /t >>%Logfile2%
time /t >>%Logfile2%
@echo . >>%Logfile2%
@echo . >>%Logfile2%
C:
cd testbat_del

pause
rem ** Loeschen der Dateien ohne Unterordner
del /F /S /Q C:\testbat_del\*.* >>%Logfile2%
@echo . >>%Logfile2%
@echo . >>%Logfile2%


rem ** Schreiben der Endzeit
@echo End Datum und Zeit.... >>%Logfile2%
@echo on
date /t >>%Logfile2%
time /t >>%Logfile2%


:Ende
Echo Erolgreich
pause



Die Batchdatei macht nichts anderes als in einem bestimmten Ordner alles rauszulöschen (inklusive Dateien in den Unterordnern) und schreibt es in eine Logfile.
Wenn es 2mal am gleichem Datum gestartet wird erstellt er eine weitere Logfile, in der aber im Dateinamen noch dazu die Zeit geschrieben wird.
Die logfile sieht dan z.b. wie folgt aus:
02-Loeschen-Scan-Fr 09.02.2007-10:42:15.83.txt

da aber die doppelpunkte als ungültiges Zeichen für einen Dateinamen gelten, stelle ich mir die Frage wie ich die Zeitausgabe im Dateinamen formatiere????
gewünschtes Ergebnis:
02-Loeschen-Scan-Fr 09.02.2007-10-42-15-83.txt


Danke schon mal im Voraus;)

Content-Key: 51229

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

Printed on: April 19, 2024 at 11:04 o'clock

Member: Biber
Biber Feb 09, 2007 at 10:58:21 (UTC)
Goto Top
Moin, Sir-Eiven,

am schnellsten vermutlich so:
... in dem Batch...
for /f "tokens=1-6 delims=:.," %%a in ("%date%-%Time%") do @set "Logfile=%%a.%%b.%%c-%%d-%%e-%%f.txt"  

Dann hat die Variable %Logfile% in Deiner Systemkonfiguration den Wert "Fr 09.02.2007-10-42-15-83.txt" (oder so ähnlich).
Und ggf noch den Namen bei Bedarf erweitern:
...set "DeleteLogfile=02-Loeschen-Scan-%logfile%"

Gruss
Biber
Member: miniversum
miniversum Feb 09, 2007 at 10:58:45 (UTC)
Goto Top
Ersetzt einfach den : durch -

set Zeit=%TIME::=-%

und wenn dus fürs , auch wilslt entsprechend danach

set Zeit=%Zeit:,=-%


miniversum
Mitglied: 33968
33968 Feb 09, 2007 at 12:51:10 (UTC)
Goto Top
danke miniversum, das wars!;)

ps: biber übertreibs doch nicht..;P