Skip to content

Jörg Dähler

IT-Nonstop Blog

Archiv

Tag: Batch

Einige die für ihre Sicherung gerne ROBOCOPY als Backup-Software einsetzen, haben bestimmt auch manchmal das folgende Problem. Obwohl einige Dateien gerade erst frisch auf das Network Attched Storage kopiert wurden, werde diese beim erneuten ausführen des Backup-Jobs noch mal kopiert. Warum denn das? 

continue reading…

Batch SYNCBAK.BAT

cls
@echo off
REM *********************************
REM ***   SYNCBAK.BAT Version 1.0 ***
REM *** (c) 2008 by Joerg Daehler ***
REM *********************************

if (%2)==() goto FEHLER

echo Backup Syncronisation Batch wurde gestartet
echo Kopiere Dateien von %1 nach %2

xcopy /s /d /h /r /y /f %1\*.* %2
echo Kopieren abgeschlossen

echo REM SYNCBAK.BAT hat die Dateien die gelöscht werden sollen ermittelt > c:\$-$.bat
echo REM             Schliessen Sie Notepad  N I C H T, wenn Sie dies verhindern wollen. >> c:\$-$.bat
echo REM             Schliessen Sie in diesem Fall stattdessen das CMD-Fenster! >> c:\$-$.bat
echo. >> c:\$-$.bat

echo Ermittle Syncronisations-Daten
subst b: %2
DIR /s /b /a-d b:\ > c:\$-$.txt
subst /d B:
subst b: %1
for /f "delims=" %%i in (c:\$-$.txt) do if not exist "%%i" (
echo ATTRIB -h -s -r "%%i" >> c:\$-$.bat
echo DEL "%%i" >> c:\$-$.bat
)
subst /d B:
subst b: %2
notepad.exe c:\$-$.bat
echo Loeschen der Daten
call c:\$-$.bat
subst /D B:
goto ENDE

:FEHLER
echo Falscher Aufruf ! (Beispiel: SYNCBAK.BAT c:\daten d:\daten)

:ENDE
DEL /Q c:\$-$.*

Batch SUCHPATH.BAT

Spätestens nach dem ersten Upgrade älterer Software auf neue Versionen oder nach dem Einspielen mehrerer Patches stellt man sich oft die Frage, ob nun auch wirklich das richtige Programm aufgerufen wird. Häufig verbergen sich noch vergessene Utilities in Verzeichnissen, auf die ein Suchpfad zeigt, und verhindern so die Ausführung des eigentlich gewünschten Programms.

Dieses Problem bin ich mit Hilfe einer kleinen Stapeldatei zu Leibe gerückt. Das Batchfile durchsucht den Pfad nach einem vom Benutzer angegebenen Dateinamen und zeigt alle gefundenen Files an. Das dazu eizugebende Listing ist vergleichsweise kurz:

@echo off
REM *********************************
REM ***   SUCHPATH Version 1.0    ***
REM *** (c) 1999 by Joerg Daehler ***
REM *********************************

if %1x==x goto help
if %1==__$$__$$__$$ goto INNERLOOP
%0 __$$__$$__$$ %1 %PATH%

:HELP
  echo SUCHPATH.BAT Version 1.0 (c) 1999 by Joerg Daehler
  echo Sucht den Pfad nach einer Datei ab !
  echo USAGE: SUCHPATH Dateiname ( *,? erlaubt )
  echo.
  goto quit

:INNERLOOP
  set test=%2
  if exist %TEST% dir %TEST%
:next
  if %3x==x goto quit
  if exist %3\%TEST% dir %3\%TEST%
  shift
  goto next

:quit