Jump to content

per batch dateinamen mit datum versehen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

hallo ihr! ;-)

 

batchen geht ja soooo einfach, hab ich gedacht.

na gut, eigentlich doch. aber manchmal verfehlt man halt sein ziel. ich lasse monatlich eine logdatei vom apache server in ein "backup-verzeichnis kopieren, lösche die originaldatei, um so monat für monat separierte logfiles zu erhalten. nun möchte ich aber nicht immer die datei auf dem backupverzeichnis umbenennen müssen, damit es nicht im nächsten monat von der aktuellen überschrieben wird.

weiss jemand, wie ich den dateinamen per batch automatisch jeden monat erweitere, also z.b. um das aktuelle datum

z.b. access.log -> access_03-01.log usw...

 

vielen dank für eure hilfe!

 

 

gruss

axel

Link to comment

Die %date% Variable ist schön ...

noch etwas ausführlicher gehts so:

if %1/==:/ goto %2
  if NOT %1/==/?/ goto Begin
  for %%C in (echo. goto:End) do %%C
 :Begin
  echo. | date | FIND "(mm" > NUL
  if NOT errorlevel 1 %0 : %OS%Parse MM DD
                      %0 : %OS%Parse DD MM
 :Windows_NTParse 
  for /f "tokens=1-4 delims=/.- " %%A in ('date /t') do (
    set Dow=%%A&set %3=%%B&set %4=%%C&set YYYY=%%D&goto End)
 :Parse
  for %%C in (md cd) do %%C @tmp@
  echo @prompt set _D=$D$_> ~tmp1.bat
  %COMSPEC% /e:2048 /c ~tmp1.bat > ~tmp2.bat
  call ~tmp2
  echo %_D% | FIND "/" > NUL
  if NOT errorlevel 1 goto Slash
  lfnfor on > "%_D%.-"
  ren "%_D%.-" "??? ?? ?? ????"
  for %%F in ("??? ?? ?? ????") do set _D=%%F
  lfnfor off
 :Slash
  echo set DOW=%%%3%%>~tmp1.bat
  for %%S in ("%3=%%%4%%" "%4=%%YYYY%%" "YYYY=%%1") do echo set %%S>>~tmp1.bat
  for %%S in (%_D%) do call ~tmp1 %%S
  echo %_D% | FIND "/" > NUL
  if errorlevel 1 goto Cleanup
  echo @prompt set %4=$%%%4%%$_set YYYY=$%YYYY%$_ > ~tmp1.bat
  %COMSPEC% /e:2048 /c ~tmp1.bat > ~tmp2.bat
  call ~tmp2
 :Cleanup
  for %%C in ("set _D=" cd.. "deltree /y @tmp@ > NUL") do %%C
 :End

 

Funzt auch unter Win9x und du kannst die Variablen

 

%DOW% %DD% %MM% %YYYY%

 

benutzen und umstellen wie du willst.

 

subby

Link to comment

Hallo Johannis ...

 

Alle Variablen ?? Warum sind Variablen Variabel ?? Genau ! Damit man sie frei defenieren kann ... :)

 

Eine Liste der Systermvariablen bekommst du angezeitgt im dem du in der console "set" angibts.

Du kannst dies auch in eine Datei schpeichern z.B. so:

 

set > c:\variablen.txt 

 

Oder aber du benutzt den "help" befehl ... er listet alle möglichen CMD Befehle auf. Sehr gut ist übrigens auch die WindowsHilfe , wollte ich erst nicht glauben, ist aber wahr.

 

 

subby

Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...