Bat - Schleife aus txt Datei
Hallo,
ich habe mir ein kleines Sicherungsscript gebastelt, und würde dieses gerne vereinfachen.
Im Augenblick habe ich für jeden zu sichernden Rechner einen Abschnitt in der BAT.
Schön wäre es aber wenn ich die Eckdaten (Rechnername, Adresse, Infos) in eine .txt schreiben könnte und die Schleife, Zeile für Zeile abläuft:
Hier mal der "Code" für jeden einzelnen PC. Fett ist alles was sich von PC zu PC ändert
Für weitere Vereinfachungen bin ich natürlich offen!
P.S. wenn mir jemand erklärt wie ich Code mit Zeilenzahl und in einer Tabelle im Forum poste wäre ich Happy ;)
ich habe mir ein kleines Sicherungsscript gebastelt, und würde dieses gerne vereinfachen.
Im Augenblick habe ich für jeden zu sichernden Rechner einen Abschnitt in der BAT.
Schön wäre es aber wenn ich die Eckdaten (Rechnername, Adresse, Infos) in eine .txt schreiben könnte und die Schleife, Zeile für Zeile abläuft:
Hier mal der "Code" für jeden einzelnen PC. Fett ist alles was sich von PC zu PC ändert
Für weitere Vereinfachungen bin ich natürlich offen!
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>> **Rechnername** - **Nutzername** %date% %time% <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" >> %errordatei%
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>> **Rechnername** - **Nutzername** %date% %time% <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<" >> %logdatei%
ping -n 1 **Rechnername** >> %logdatei% 2>&1
IF ERRORLEVEL == 1 (
echo.
ECHO !nicht pingbar!nicht pingbar!nicht pingbar!nicht pingbar!nicht pingbar!nicht pingbar!nicht pingbar!nicht pingbar!nicht pingbar!nicht pingbar! >> %errordatei%
echo.
) ELSE (
echo.
ECHO [_/] Ping >> %errordatei%
net use U: \\**Rechnername**\d /user:%nutzer% %passwort% >> %logdatei% 2>&1
IF ERRORLEVEL == 1 (
echo.
ECHO !Netzlaufwerk wurde nicht eingebunden!Netzlaufwerk wurde nicht eingebunden!Netzlaufwerk wurde nicht eingebunden!Netzlaufwerk wurde nicht eingebunden!Netzlaufwerk wurde nicht eingebunden! >> %errordatei%
echo.
) ELSE (
echo.
ECHO [_/] Netzlaufwerk >> %errordatei%
ROBOCOPY U:\ D:\sicherung\**Rechnername**\D /XD "System Volume Information" "$RECYCLE.BIN" /XF MEMORY.DMP /MIR /TEE /ETA /COPY:DAT /a-:hs /r:0 /w:1 /NP /NFL /NDL /NJH >> %logdatei%
IF ERRORLEVEL == 16 (
echo.
ECHO !es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert!es wurde nichts gesichert! >> %errordatei%
echo.
) ELSE (
echo.
ECHO [_/] gesichert >> %errordatei%
echo.
)
net use u: /delete /yes
echo.
)
echo.
)
P.S. wenn mir jemand erklärt wie ich Code mit Zeilenzahl und in einer Tabelle im Forum poste wäre ich Happy ;)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 235711
Url: https://administrator.de/contentid/235711
Ausgedruckt am: 26.11.2024 um 21:11 Uhr
16 Kommentare
Neuester Kommentar
Dann editiere (bearbeiten) den Ausgangsbeitrag bitte auch mit Code-Tags.
Alle? Alles?
Na z.b. die Windows Sicherung?
http://windows.microsoft.com/de-de/windows7/products/features/backup-an ...
http://www.netzwelt.de/news/81374-anleitung-backup-windows-7-bordmittel ...
usw
https://www.google.de/search?client=opera&q=windows+sicherung+window ...
Gruß
Alle? Alles?
Na z.b. die Windows Sicherung?
http://windows.microsoft.com/de-de/windows7/products/features/backup-an ...
http://www.netzwelt.de/news/81374-anleitung-backup-windows-7-bordmittel ...
usw
https://www.google.de/search?client=opera&q=windows+sicherung+window ...
Gruß
Hallo hoffi3d,
kleines Beispiel wenn deine Textdatei z.B. so aussieht (Spalten via Semikolon getrennt):
kannst du sie hiermit durchlaufen:
Grüße Uwe
kleines Beispiel wenn deine Textdatei z.B. so aussieht (Spalten via Semikolon getrennt):
PC01;maxmustermann;Passw0rd
PC02;henriettemuster;Passw0rd
PC03;seppmeier;Passw0rd
for /f "usebackq tokens=1-3 delims=;" %%a in ("deineDatei.txt") DO @(
echo Rechnername: %%a / Nutzername: %%b / Password: %%c
REM Hier machst du Backup für den jeweiligen Rechner
)
Auch das geht problemlos wenn du es mal eingerichtet hast und der Zugriff auf einzelne Dateien geht auch durch doppelklick auf die Sicherung
Aber seis drum... was der "Kunde" will, soll der "Kunde" haben.
An den Anfang der Batch:
Ans Ende der Batch:
Sollte theoretisch klappen. Auch wenn ich das Gefühl habe, dass du uns was verschweigst ... das ist nicht die ganze Batch, weil deine Variablen fehlen etc.
Gruß
Edit: Da war der Colinardo schneller ... meine Textdatei ist mit Nutzer,Rechnername,PW aufgebaut und mit einem Komma getrennt.
Aber seis drum... was der "Kunde" will, soll der "Kunde" haben.
An den Anfang der Batch:
FOR /F "tokens=1,2,3 delims=," %%i in (test.txt) do (
set nutzer=%%i
set rechnername=%%j
set passwort=%%k
Ans Ende der Batch:
)
Sollte theoretisch klappen. Auch wenn ich das Gefühl habe, dass du uns was verschweigst ... das ist nicht die ganze Batch, weil deine Variablen fehlen etc.
Gruß
Edit: Da war der Colinardo schneller ... meine Textdatei ist mit Nutzer,Rechnername,PW aufgebaut und mit einem Komma getrennt.
Zitat von @hoffi3d:
es werden alle PC´s im Netzwerk gesichert sprich auf meinen PC kopiert und von dort auf eine USB-Festplatte!
Was für Boardmittel existieren dafür????
Windows Backup kann auch auf Netzlaufwerke sichern ... und lässt sich ebenfalls über die Kommandozeile steuern:es werden alle PC´s im Netzwerk gesichert sprich auf meinen PC kopiert und von dort auf eine USB-Festplatte!
Was für Boardmittel existieren dafür????
wbadmin start backup -allCritical -vssfull -quiet -noVerify -include:c: -backupTarget:\\Servername\Freigabe"
Dachte ich mir doch das das kommt, habe dich aber erst mal gegen die Wind fahren lassen .... Du musst beim setzen von Variablen innerhalb einer FOR-Schleife vorher die verzögerte Variablenerweiterung aktivieren
und dann innerhalb deiner Schleife die Variablen mit Ausrufezeichen anstatt Prozentzeichen ansprechen
und die Errorlevel solltest du dann ebenfalls so überprüfen
@echo off & setlocal ENABLEDELAYEDEXPANSION
echo !deineVar!
!ERRORLEVEL!
Colinardo, womit hängt das zusammen, weil ich hab das getestet wie ich es oben geschrieben habe und ich hab problemlos die Werte die in der Textdatei stehen angezeigt bekommen.
Gruß
edit: ah ok bei der Ausgabe kommt nix wenn ich zwei Zeilen einfüge. Bei einer gehts, wenn ich es außerhalb der For-Schleife ausgebe, aber dann auch nur der letzte Wert. Man lernt ja nie aus
Gruß
edit: ah ok bei der Ausgabe kommt nix wenn ich zwei Zeilen einfüge. Bei einer gehts, wenn ich es außerhalb der For-Schleife ausgebe, aber dann auch nur der letzte Wert. Man lernt ja nie aus
ja, oder
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, Merci.
Die Hauptfrage ist ja beantwortet.
Grüße Uwe
tokens=1-4
Die Hauptfrage ist ja beantwortet.
Grüße Uwe
@ colinardo
ausführt. Dass damit nicht auf "= 1", sondern auf ">= 1" geprüft wird, dürfte nicht weiter stören ...
Grüße
bastla
und die Errorlevel solltest du dann ebenfalls so überprüfen
ist natürlich richtig - weshalb es bei hoffi3d trotzdem funktioniert liegt daran, dass der Interpreter clever genug ist, die unnötigen "==" einfach zu ignorieren und daher de facto die Abfrage!ERRORLEVEL!
IF ERRORLEVEL 1 (
Grüße
bastla