BATCH: Freien Laufwerksbuchstaben finden

Problem:
Ich wollte per Bacth-Skript den nächsten freien Laufwerksbuchstaben ermitteln.

Lösung:
In den c't FAQs habe ich einen interessanten Artikel und ein Batch-Skript gefunden, dass genau diese Aufgabe löst:

@echo off %debug%
if not "%OS%"=="Windows_NT" exit /b
setlocalset ll=V T R Q P O N M K J I W X Y Z L U S H G F E D
for %%l in (%ll%) do (
 set LW=%%l
 mountvol %%l: /L >nul
 if errorlevel 1 (
 subst | findstr /B "%%l:" > nul
 if errorlevel 1 (
 net use %%l: >nul 2>&1
 if errorlevel 1 goto gotone
 )
 )
)
echo Kein Laufwerksbuchstabe frei
exit /b
:gotoneecho %LW% ist ein freier Laufwerksbuchstabe


Der Laufwerksbuchstabe steht dann in der Variable %LW% zur weiteren Verarbeitung zur Verfügung.

Quelle: c't Hotline & FAQ: Freien Laufwerksbuchstaben finden
Kategorien: Batch
Tags für diesen Artikel:

Dienste überprüfen/neu starten mit LOG-File

Beispiel mit drei Diensten - kann beliebig erweitert werden!
Es ist möglich das ganze als geplanten Task mehrfach täglich laufen zu lassen!

Alle laufenden Dienste werden in der service.txt gespeichert und dann wird nach den entsprechnden Diensten darin gesucht.
Ist der Dienst nicht gestartet, dann wir er gestartet und ein Eintrag in die ausfall.txt erstellt mit Uhrzeit und Datum!

Die ausfall.txt wird NICHT überschrieben, sondern alle Fehler werden angehängt!
Die service.txt wird bei jedem Aufruf neu generiert!

@echo off

REM --- alle laufende Dienste in service.txt speichern---
net start > service.txt

REM ------------- Überprüfen ob 1.Dienst läuft --------------
find "Designs" service.txt
if errorlevel 1 goto WEG1
if errorlevel 0 goto OK1

:WEG1
REM --- Dienst neu starten und Datum + Uhrzeit festhalten ---
echo Designs %date% %time% >> ausfall.txt
net start "Designs"
goto OK1
REM ---------------------------------------------------------

:OK1

REM ------------- Überprüfen ob 2.Dienst läuft --------------
find "Hilfe und Support" service.txt
if errorlevel 1 goto WEG2
if errorlevel 0 goto OK2

:WEG2
REM --- Dienst neu starten und Datum + Uhrzeit festhalten ---
net start "Hilfe und Support"
echo Hilfe und Support %date% %time% >> ausfall.txt
goto OK2
REM ---------------------------------------------------------

:OK2

REM ------------- Überprüfen ob 3.Dienst läuft --------------
find "Taskplaner" service.txt
if errorlevel 1 goto WEG2
if errorlevel 0 goto OK3

:WEG2
REM --- Dienst neu starten und Datum + Uhrzeit festhalten ---
net start "Taskplaner"
echo Taskplaner %date% %time% >> ausfall.txt
goto OK3
REM ---------------------------------------------------------

:OK3

goto END

:END
Kategorien: Batch
Tags für diesen Artikel:

CD brennen mittels NeroCMD als Batchfile

Es handelt sich hierbei um eine Lösung für das Brennen mittels NeroCMD in einer Batchfile!
Es wird ein vordefiniertes Verzeichnis mit definierbaren Parametern auf CD gebrannt.

Diese Lösung funkioniert NICHT mit DVDs!

Features:

- Alle Paramter werden über Varaiblen festgelegt
- Einfache Einrichtung
- Batchfile ist ausdokumentiert

Batchfile und NeroCMD.exe sind mit angehängt!
ACHTUNG: Ahead Nero muß auf dem Rechner installiert sein!

@echo off

REM Variablen-Erklärung

REM name = Name der CD, die erstellt wird. Hier wird das Datum genommen
REM sv = Name des zu sicherden Verzeichnisses
REM nv = Nero-Verzeichnis, in dem die nerocmd.exe liegt
REM drive = Laufwerksbuchstabe des Brenners
REM Speed = Brenngeschwindigkeit

set name=%date%
set sv="C:\Dokumente und Einstellungen\[BENUTZERNAME]\Desktop\RE_Trash\*.*"
set nv="C:\Programme\Ahead\Nero\nerocmd.exe"
set drive=e
set speed=32

echo Datensicherung
echo.
echo.
echo Der Brennvorgang Ihrer Daten wird gestartet
echo Es wird folgendes Verzeichnis gesichert
echo %sv%
echo.
echo Bitte legen Sie einen leeren CD-Rohling ein...

pause

%nv% --write --drivename %drive% --speed %speed% --iso %name% --create_iso_fs --verify %sv% --recursive

echo Es wurde die Sicherung %name% mit %speed%-facher Geschwindigeit auf dem Laufwerk %drive% erstellt
echo Bitte Überprüfen Sie, ob die Daten auf dem erstellten Datenträger sind.
echo vielen Dank!


[BENUTZERNAME] muss durch ihren Benutzernamen ersetzt werden

Download : NeroCmd.exe
Kategorien: Batch
Tags für diesen Artikel:

NTBackup Log-Auswertungüber Batchdatei

Das Batchfile zeigt das letzte LOG-File von NT Backup an. Damit läßt sich leicht der letzte Stand der Sicherung abfragen!

@echo off
setlocal ENABLEDELAYEDEXPANSION
set file=N
set user=%UserProfile%
if {%1} NEQ {} set user=%1
set user=%user:"=%
set folder=%user%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data
for /f "Tokens=*" %%a in ('dir "%folder%\backup*.log" /b /O-D') do if "!file!" EQU "N" set file=%%a
start "!file!" "%SystemRoot%\notepad.exe" "%folder%\!file!"
endlocal
exit /b 0


Hier nochmal das ganze bei dem das LOG-File in ein Verzeichnis kopiert wird:

@echo off
setlocal ENABLEDELAYEDEXPANSION
set file=N
set user=tfreitag
if {%1} NEQ {} set user=%1
set user=%user:"=%
set folder=C:\Dokumente und Einstellungen\ren-admin\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data
for /f "Tokens=*" %%a in ('dir "%folder%\backup*.log" /b /O-D') do if "!file!" EQU "N" set file=%%a
rem start "!file!" "%SystemRoot%\notepad.exe" "%folder%\!file!"
copy "%folder%\!file!" C:\Freigaben\Technik\Sicherung\%date%.txt
endlocal
exit /b 0
Kategorien: Batch
Tags für diesen Artikel:

Sicherung NTBackup mit Auftrags-Mail

Beschreibung:

Das nachfolgende Skript stellt eine perfekte Sicherung mit NTBackup da.
Das BKS-File muß mit NTBackup erstellt werden!
Die Namen der Sicherung und des Datenträerppols zum Auswurf des Bandes müssen angepaßt werden!
Alle Daten, die angepaßt werden müssen/können sind kursiv und fettgekennzeichnet
Nach der Sicherung wird eine Auftrags-Mail mit dem Logfile versendet.

ACHTUNG:

Damit das Skript läuft wird das Tool mail-as-batch.exe benötigt. Dieses ist unter der folgender Adresse herunterladbar:
Link : http://www.sql-und-xml.de/freeware-tools/ oder direkt : mail-as-batch.zip

@echo off

REM --- neue Inventur
start /wait rsm refresh /LF"Hewlett Packard DAT72 drive"

REM --- schauen, was da ist
start /wait rsm view /tphysical_media

REM --- Datensicherung starten
start /wait C:\WINDOWS\system32\ntbackup.exe backup "@C:\Dokumente und Einstellungen\ren-admin\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows 
NT\NTBackup\data\Voll_BAMSDC010.bks" /n "%date% Vollsicherung BAMSDC010" /d "%date% Vollsicherung BAMSDC010" /v:yes /r:no /rs:no /hc:on /m normal /j "Voll_BAMSDC010" /l:s /p "4mm DDS" /UM

REM --- Band auswerfen
REM Auswurf des Bandes, Medianame muss genau dem Name des Bandes entsprechen
rsm eject /LF"Hewlett Packard DAT72 drive"

REM --- Sicherungslog als Mail versenden
setlocal ENABLEDELAYEDEXPANSION
set file=N
set user=tfreitag
if {%1} NEQ {} set user=%1
set user=%user:"=%
set folder=C:\Dokumente und Einstellungen\ren-admin\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data
for /f "Tokens=*" %%a in ('dir "%folder%\backup*.log" /b /O-D') do if "!file!" EQU "N" set file=%%a
rem start "!file!" "%SystemRoot%\notepad.exe" "%folder%\!file!"
c:\mail-as-batch.exe -smtp 192.168.100.80 -from Backup@mr-daten.de -to rbamberg@mr-daten.de -s Sicherung BAMSDC010 -body "%folder%\!file!"
endlocal
exit /b 0
Kategorien: Batch
Tags für diesen Artikel:
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)