BATch-Dateien - andere Kommandozeilentools

Auswahl weiterer Kommandozeilentools, die nicht zum Umfang von MS Windows gehören.

Liste weiterer Kommandozeilentools

In dieser Rubrik werden verschiedene Kommandozeilentools aufgelistet, die sich ebenso in Batch-Dateien verwenden lassen. Es sind zumeist Portierungen bekannter Unix-Kommandozeilentools oder aber Freeware für Windows.
Alle genannten Programme gehören nicht(!) zum Umfang von MS Windows.

WIP:

Beispiele: Mysql-DB wiederherstellen

Dieses Skript inkludet dieselbe Konfiguration, wie das Backup-Skript.
Es arbeitet interaktiv.
  1. Es wird nach dem Backup-Set gefragt (es werden alle vorhandenen Datenbanken aufgelistet)
  2. anschliessend werden die zu dieser Datenbank gehörenden Backups angezeigt.
  3. Es wird nach dem Namen der Datenbank gefragt, in die der Dump importiert werden soll. Default ist dieselbe Datenbank. Wird eine nicht existierende DB angegeben, wird diese zhunächst angelegt.

@echo off
rem ======================================================================
::
:: Restore einer Mysql-DB
::
:: erfordert:
:: mysql, gzip
::
rem ======================================================================

rem ------------------------------------------------------
::  CONFIG
rem ------------------------------------------------------
set about=Axels Mysql-Restore
call config_mysql.bat

rem ------------------------------------------------------
::  MAIN
rem ------------------------------------------------------
TITLE %about%
echo.
echo ===== %about% =====
echo.


echo ===== Auswahl des Backup-Sets
echo --- vorhandene Mysql-Datenbanken:
for /F "tokens=* skip=1" %%a in ('echo show databases ^| mysql %dbparams%' ) do echo %%a
echo %dball%
echo.
echo Das Backup welcher Datenbank soll wiederhergestellt werden? 
set /P dbname="Datenbank-Name > "
echo.


echo --- vorhandene Mysql-Backups:
dir "%dirBackup%\%dbname%_*.gz" | findstr "^[0-9]"
echo.
echo Welches Backup soll eingespielt werden? 
set /P dumpfile="Dateiname > "
echo.

set dboverwrite=%dbname%
if "%dbname%"=="%dball%" set dboverwrite=
if NOT "%dboverwrite%"=="" (
	echo "Welche Datenbank soll ueberschrieben werden (default=%dboverwrite%)?"
	set /P dboverwrite="Datenbank-Name > "
	echo.
)

echo show databases | mysql %dbparams% | findstr "^%dboverwrite%$" || (
	echo HINWEIS:
	echo Der angegebene neue Datenbankname existiert nicht.
	echo.
	echo --- lege Datenbank %dboverwrite% an ...
	echo create database %dboverwrite% | mysql %dbparams%
	echo rc=%ERRORLEVEL%
	echo.
)

dir "%dirBackup%\%dumpfile%" >nul 2>&1 && (
	TITLE restore - %about%
	echo --- Stelle Datenbank %dbname% wieder her...
	
	if "%dbname%"=="" echo Es wird die komplette DB wiederhergestellt.
	echo DB=%dboverwrite%
	echo Backup=%dumpfile%
	
	gzip -dc "%dirBackup%\%dumpfile%"  | mysql %dbparams% %dboverwrite%
	echo rc=%ERRORLEVEL%

) || echo FEHLER: Dateiname des Backups nicht gefunden.

:end
TITLE fertig - %about%
echo.
echo --- Fertig - schliesse in 10 Sek.
ping -n 11 localhost >nul

rem ======================================================================