Batch_Methoden
Sehr gute BATCH Erklärung: http://www.antonis.de/dos/batchtut/bat-kurs/
http://www.antonis.de/dos/batchtut/battips/index.htm
https://sites.google.com/site/batchprogrammierung/befehle/operatoren
https://de.wikibooks.org/wiki/Batch-Programmierung:_Wichtige_DOS-Kommandos
https://www.script-example.com/themen/cmd_Batch_Befehle.php
https://tagungen.tekom.de/fileadmin/tx_doccon/slides/127_Microsoft_Batch_Ein_n_tzlicher_Helfer_f_r_t_gliche_Routinen.pdf
UmgebunsgVariablen:
https://de.ccm.net/contents/219-umgebungsvariablen
Beispiele aufwendiger Batchs ( aus Movidius neuronale Netz
Erkennung )
demo_security_barrier_camera.bat
demo_squeezenet_download_convert_run.bat
Umschalten auf deutsche
Umlaute:
CHCP 1252 > nul
Autostart einer Batch in Window Timer-Programmstart
C:\Windows\System32\cmd.exe /C "C:\Batch-NAS\NAS-Mount-Admin.cmd"
Batch immer als ADMIN ausführen
Indirekt über_ ZUERST Verknüpfung zu
Batch erstellen.
Die Eigenschaften davon ändern. "als Administrator
ausführen"
Verknüpfungen -Reiter Verknüpfungen --> Erweitert!"
anklicken bei . "als Administrator ausführen"
Jetzt immer die Verknüpfung ausführen !
SYSTEMVARIABLEN NUTZEN
Gültigekeit von SET Variablen. ( lokal )
aber kann so übergeben werden
for /f "tokens=*" %%i in (zwei.txt) do set korr1zeit=%%i
https://administrator.de/forum/g%C3%BCltigkeit-variablen-batch-dateien-28400.html
Auch ein aufruf eines 2. Batch reicht die gültigkeit an den Aufrufer
zurück
call
C:\Batch_My\Set_ChrE_PWD.cmd
darin --> SET ChE_PWD="12345678"
dann kann "batch darunter"
ECHO /USER:ADS\erc24492 %ChE_PWD%
WINDOWS Suche:-->
Umgebungsvariablen = SystemSteuerung
oder im Command einfach
SET
eingeben
Es gibt unter Umgebungsvariablen viele weitere, sehr nutz volle,
benutzbare Systemvariblen
NUMBER_Of_PROCEESSSORS 4
PATHEXT
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PSModulePath
%ProgramFiles%\WindowsPowerShell\Modules
%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules
USERNAME SYSTEM
windir %SystemRoot%
ANSICHT
echo %SystemRoot%
CHCP 1252 > nul
%NWUSERNAME% --> z.B: erc24xxx
%N = Variable
%0 = Pfad zur BAT_Datei selbst
%1 %2 = Argument 1 und 2
%~d = Laufwerk
%~dp Laufwerk + Pfad
%~dp0 = LW+Pfad+BatchName
%~t = Dateidatum + Uhrzeit
%~z = Grösse
Siehe: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490909(v=technet.10)
cd
%~dp0
D:\MovidiusNeuronalStick\
wechselt
in das Verzeichnis aus dem die Batch-Datei aufgerufen worden ist.
~d0
= D: ohne \
%~dp0 = D:\MovidiusNeuronalStick\
~p0
= Nur OrdnerName ohne LaufWerk :\MovidiusNeuronalStick\
SET
SCRIPT_LOCATION=%~dp0
set ROOT=%~dp0
ECHO SCRIPT_LOCATION=%SCRIPT_LOCATION%
%~nx0
ECHO NAME
der aufrufenden Batchs selbst = %~nx0
ECHO
%~nx0
@ECHO OFF
ECHO ** Dies soll nur die Path Selektoren zeigen ***
ECHO.
SET LAUFWERK=%~d0
ECHO LAUFWERK=%LAUFWERK%
ECHO Zeige Ort, wo Batch aufgerufen wird. = %~dp0
ECHO Nutzung "cd %~dp0"
SET LW_plus_ORdner = %~dp0
ECHO LW_plus_ORdner = %LW_plus_ORdner%
ECHO NAME der aufrufenden Batchs selbst = %~nx0
SET BATCHNAME=%~nx0
ECHO BATCHNAME=%BATCHNAME%
ECHO.
:: Das ist z.B: D:\MovidiusNeuronalStick
set ROOT=%~dp0
:: GetFullPath
SET %2=%~f1
ECHO ERGEBNIS -- WAS_IST_FULLPATH =
set SCRIPT_NAME=%~nx0
--> gibt den NAME der Batch selbst wieder.
ECHO USERPROFILE = %USERPROFILE%
::
C:\Users\Christof
ECHO USERPROFILE\Desktop = %USERPROFILE%\Desktop
ECHO HOMEPATH=%HOMEPATH%
ECHO USERNAME=%USERNAME%
ECHO USERDOMAIN= %USERDOMAIN%
ECHO SYSTEMROOT=%SYSTEMROOT%
ECHO APPDATA= %APPDATA%
ECHO WINDIR= %windir%
PAUSE
exit /b
Anwendungs Beispiel
SET SOURCE_SPACE=C:\users\%USERNAME%\Desktop
ECHO.
:GetFullPath
SET %2=%~f1
SET WAS_IST_FULLPATH=%~f1
exit /b
PATH in Liste aufnehmen !!
:: set "MeinNeuerPfad=c:\Beispiel\Pfad"
:: Set "path=%path%;%MeinNeuerPfad%"
:: Achtung ";" einfügen
===========================================
CALL mit
Parametern;
Set ROOT=%~dp0
CALL :GetFullPath "%ROOT%\.." ROOT
:GetFullPath
SET %2=%~f1
----> Das ergibt D:\
===========================================
GOTO :EOF
_
Recherchen und
UNGEKLÄRTES.. Wenn Zeit ist
exit /B 0 Die 0 IST errorlevel
GOTO :EOF
if [%Source_Space%]==[""] (exit /b) oder %Source_Space%==""
(exit /b)
ECHO Eingeloggter User=%USERPROFILE%
Autostart Ordner kpiere das in die Explorerleiste
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
DAS GEHT NICHT
IF %Source_Folder%=="" (ECHO ** Source_Folder war LEER **) & (EXIT
/b)
Bricht ab bei Namen mit Leerzeichen
Zuerst brauchen wir eine leere oder vorbereite Batch Datei = Text Datei mit Ausführungsattribut
und
Früher, bis ~2000 war die Endung (Suffix) .BAT, heute wird jedoch meisst .CMD verwendet
Test.bat
Test.cmd
WICHTIG: Völlig "formatfrei" bearbeiten mit Notepad.exe
--> [Fenster Taste] + R --> notepad.exe
Falls man sie automatisch beim Systemstart laden möchte, kann man sie
in eines der folgenden Verzeichnisse legen.
Für den generellen Systemstart bei jedem Benutzer:
%ProgramData%\Microsoft\Windows\Start
Menu\Programs\StartUp
Für den Systemstart des aktuell angemeldeten Benutzers:
%appData%\Microsoft\Windows\Start
Menu\Programs\StartUp
Ausführung
COMMAND Fenster mit Admin Rechten:
oder Windows10 Powershell mit Adminrechten
Rechte Maustaste -A Mit Adminrechten ausführen, oder
STRG+SHIFT +
auf Kommandofenster Symbol
klicken
Kommandofenster oder [Fenster
Taste] + R --> CMD
einfügen
:: Aufruf einer .CMD Datei im Windows Scheduler.
:: Parameter: C:\Windows\System32\cmd.exe
/c "BackupDatei.cmd"
--> /C
Führt den durch string spezifizierten Befehl aus und beendet ihn dann
REM chcp 1252"
immer als erste Zeile in einer Batch eingeben
@Echo off
REM Umlaute sind ein Problem: Dos verwendet OEM 850
und nicht ANSI oder UTF-8,
REM deshalb: Stelle die Codepage auf chcp 1252
:: ***************
chcp 1252
:: **************
Plan B:
chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß
chcp 850>nul
Dann kann man direkt im Notepad Umlaute schreiben
SET /P EINGABE= Bitte eine zahl eingeben
? aber auch \\Server\Ordner geht
REM oder :: =
Kommentar
keine < | > erlaubt, da Pipe oder Darten Umlenkung
@ECHO ON/OFF
@Sagt, das es nicht
angezeigt wird.
echo.
mit Punkt = Leerzeile bzw Leerzeichen
> nul ( ein "l" )
Ausgabe auf NICHTS
= unsichtbar oder verworfen
ping 127.0.0.1
> nul
md = Make Directory
MD D:\AA_TEST\HieristNIX\DaAuchNicht
SET insert=D:\AA_TEST\HieristNIX\DaAuchNicht
if NOT EXIST %insert% MD %insert%
if EXIST %insert% ECHO ALLES OK
if NOT EXIST %insert% ECHO NIX DA
del
*.*logdatei.txt löschen mit
Jokerzeichen ? =
EIN Zeichenersatz, * = ALLE
( pinf´h
Pfad:
..\..\..\..\..\..\..\..\..\.."\..\Herbst
FOLDERPATH=..\..\..\..\..\..\..\..\..\..^"\\..%Folder2:~3,999%
SET VariableName=Inhalt
Variablen werden von Text mit "%Variable%" eingeklammert und so
unterschieden
SET Counter=2
Rechenausdruck:
SET /A %Counter% = %Counter%
+1
SET
SET ZIEL_LW=B:
SET LOG_ORDNER=\LOGs
SET ROBOLOG=%ZIEL_LW%%LOG_ORDNER%
ORDNER sauber im batch ANLEGEN:
IFausdruck
ELSE ausdruck
IF [NOT] ERRORLEVEL Nummer Befehl
IF [NOT] Zeichenfolge1==Zeichenfolge2
Befehl
IF
NOT] EXIST Dateiname Befehl
IF
EXIST A:\nul
IF
EXIST A:\nul (Echo IFOK xxERRORLEVEL
%ERRORLEVEL%) ELSE (ECHO hierelse YYERRORLEVEL %ERRORLEVEL%)
Liefert:immer ERRORLEVEL 0
auch im ELSE FALL
IF
EXIST X:\nul (Echo IFOK
XXERRORLEVEL %ERRORLEVEL%) ELSE (ECHO hierelse YYERRORLEVEL %ERRORLEVEL%)
Liefert:immer
ERRORLEVEL 0 auch im ELSE FALL
if %Counter%==3 Echo Drei Erreicht
ECHO Geben Sie den Text ein!
SET /P text= Direkte eingabe-->
Eingabeaufforderung
ECHO Sie haben "%text%" eingegeben!
SET ROBOLOG=C:\temp
if not exist %ROBOLOG% MD %ROBOLOG%
IF [NOT] ERRORLEVEL Wert Befehl
IF [NOT] Zeichenfolge1==Zeichenfolge2 Befehl
IF [NOT] EXIST Datei Befehl
IF NOT EXIST A:\ (ECHO A= NICHT da) & (ECHO und tue noch was)
IF EXIST B:\ (ECHO B: Laufwerk ist da)
IF "%1"=="" EXIT
if not exist %ROBOLOG% MD %ROBOLOG%
IF EXIST "%USERPROFILE%\Desktop\test.txt" DEL
"%USERPROFILE%\Desktop\test.txt" &
EXIT
IF NOT EXIST %tmp%\nul MD %tmp%
Abfragen ob Variable LEER ist
if [%SourceSpace%]==[""] (exit /b)
oder
if %SourceSpace%=="" (exit /b)
FOR
https://www.axel-hahn.de/batch/helferlein-und-tabellen/alle-windows-kommandos?id=for
FOR %Variable IN (Satz) DO Befehl [Parameter]
%%Variable
ECHO Die FOR-Schleife ist ein Befehl, der so oft durchlaufen
wird, wie die Liste Datensätze vorweist.
Als Dateinamen kann man
den exakten Namen wählen oder Platzhalter (z.B. *.*)
verwenden. Wollen
wir alle Dateien eines Verzeichnisses auflisten, so ist dies so möglich.
FOR %%i IN (*.*) DO ECHO %%
%%I ist ein Zählvariable
---------------------------------------------
pause
> Weiterleitung überschreiben
>> = Weiterleitung anfügen
ping > nul
SUB-Routinen mit Labels:
1: Goto: goto :SubRoute_lanstart
2: Call
call :SubRoute_lanstart
rerun mit "exit /b"
Sartet eine andere ausführbare Datei und wartet auf deren Abschluss.
CALL [Dateipfad]Dateiname
(ping 192.168.178.1 > nul) || call :SubRoute_lanstart1
Delimiter
FOR /F "delims="%%i IN
('ping -n 1 %ip%^|findstr "berschreitung nicht"') do (echo %time%: %%i
>> "%Log%")
Echo Error = %errorlevel%
if errorlevel 0 echo alles OK
if note errorlevel 0 echo alles OK
if %ERRORLEVEL%==0 goto fertig
ODER ALS PIPE ||
rem (ping 192.168.178.1) || Echo Error = %errorlevel% || if
errorlevel 0 THEN echo alles OK || if not errorlevel 0 THEN echo NOT
NULL
-------------
:SubRoute_lanstart1
ECHO lanstart1 START
exit /b
start
/wait
find /I Findet Dateien oder Zeichenfolgen
Steuerzeichen
https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Operatoren
&
Befehlsverkettung: mehrere Batch-Befehle in einer Zeile können
hintereinander ausgeführt werden
befehl1 & befehl2
&&
bedingte Befehlsverkettung: der zweite Befehl wird nur ausgeführt, wenn
der erste Befehl erfolgreich war
befehl1 && befehl2ping
|
Befehlsverkettung mittels "pipe": der zweite Befehl bekommt die Ausgabe
des ersten Befehls als Eingabe
befehl1 | befehl2
||
bedingte Befehlsverkettung: der zweite Befehl wird nur ausgeführt, wenn
der erste Befehl fehlschlug
befehl1 || befehl2
Klammer( )
ping (%NAS_BASE_IP% > nul) & Echo NAS_Ping
Error=%errorlevel%
NETZWERK
Laufwerke Einhängen , Prüfen mit BATCH Methoden
https://www.administrator.de/forum/batch-netzwerkverbindung-pr%C3%BCfen-38296.html
von: https://www.windows-faq.de/2015/10/21/netzwerkprobleme-feststellen-nur-ping-aussetzer-protokollieren-pingtest-bat/
Hier als Text:
@echo off
chcp 1252
echo Pingtest - Ping Aussetzer protokollieren
echo ========================================
echo Bitte geben Sie die IP ein:
:: set /p ip=
set ip=132.199.???.???
IF NOT EXIST C:\temp (md C:\temp)
ECHO C:\temp THEN md C:\temp
set Log=c:\temp\pingtest-%ip%.txt
echo Logfile für IP %ip% >> %Log%
:: echo >> "%Log%"
:ping
ECHO "Ping"
for /f "delims=" %%i in ('ping -n 1 %ip%^|findstr "beschreitung"') do
(echo %time%: %%i >> "%Log%")
ECHO Weiter gehts
for /f "delims=" %%i in ('ping -n 1 %ip%^|findstr "berschreitung"') do
(echo %time%: %%i)
goto :ping
pause
exit
Ping-Test.bat
%%i is simply the loop variable
TRICK: Frage nach Laufwerl:\nul
IF EXIST U:\nul goto
.....
Klammer notwendig !!
IF EXIST X:\nul (ECHO X IST Da) ELSE (ECHO NIX DA)
control userpasswords2
NETZWERK TESTEN + Passwörter Verwalten mit [Fenster
Taste] + R --> control
userpasswords2
https://www.administrator.de/forum/batch-netzwerkverbindung-pr%C3%BCfen-38296.html
ping ohne \\ schreiben
also: ping 127.0.0.1
ping localhost > nul ~2 Sekunden Pause
ping 127.0.0.1 > nul
GEFUNDENES:
ping -n 40 tonixp | find /i "Reply" && goto :lanstart2 || goto
:lanstart1
(ping 192.168.178.1) || Echo Error = %errorlevel% || if
errorlevel 0 echo alles OK || if errorlevel not 0 echo NOT NULL
---------------------------------------------------------------------------------------
SET NAS_IP=132.199.xxx.xxx
net use z: /d
net use z: \\%NAS_IP%\tmp
:Robocopy_Backup
md D:\User
REM Tuhe was --> Robocopy C\USER: D:USER /MIR
exit /b
------------------------
@ECHO OFF
@ECHO ******** START ************
REM SET NAS_IP=132.199.xxx.xxx
SET NAS_IP=192.168.178.1
REM (ping 132.199.xxx.xxx >nul) || goto :SubRoute_lanstart1
(ping %NAS_IP%) > nul || goto :lanstart1
ECHO ******** ENDE *************
pause
exit /b
ECHO ******** Das sollte nicht kommen *************
:SubRoute_lanstart1
ECHO.
ECHO lanstart1 START
REM TU WAS MIT PASSWORT OHNE
ECHO lanstart ENDE
pause
ECHO.
exit /b
---------------------------------------------------------------
net use \\[Servername]\IPC$ /user:<Name> <Passwort>
robocopy <Quelle> \\<Servername>\Pfad /MIR
net use \\<Servername>\IPC$ /DEL
ALIAS und Paramaeter
SET NAS_USER_NAME=Christof
@Echo %NAS_USER_NAME%
https://www.lifewire.com/net-use-command-2618096
net use W: /delete
net use W: \\132.199.100.141\AGSchueller_WIKI /persistent:YES
net use W: \\132.199.100.141\AGSchueller_WIKI /USER:Christof_Admin
/persistent:YES
net use W: \\132.199.100.141\AGSchueller_WIKI /USER:Christof_Admin
"Passwort" /persistent:YES
Netzwerk testen
ERROLEEL l funktoniert.
fehlercode=2 sonst 0
IF
EXIST X:\ net use X: /del
net
use X: \\server\freigabe
:RichtigesShare
Automatische
Netz Laufwerk Einbindung -_> Script für Autostart..
@ECHO OFF
ECHO Christof ELFORT Netzlaufwerk
SET ELFORT_LW=J:
IF EXIST %ELFORT_LW% (NET USE %ELFORT_LW% /DELETE /YES)
IF NOT EXIST %ELFORT_LW% (NET USE %ELFORT_LW%
\\web\www\Fakultaeten\nat_Fak_II\studium\edverg\elfort /persistent:YES
/YES)
IF NOT EXIST %ELFORT_LW% (NET USE %ELFORT_LW%
\\web\www\Fakultaeten\nat_Fak_II\studium\edverg\elfort /USER:erc24492
"Passwort" /persistent:YES /YES)
IF NOT EXIST %ELFORT_LW% ECHO "*** LAUFWERK %ELFORT_LW% für Elfor Home
ist nicht da ***
IF EXIST %ELFORT_LW% ECHO "*** LAUFWERK %ELFORT_LW% für Elfort OK !!
****
pause
exit
::
-----------------------------------------------------------------------------------
SET NAS_IP_ADR=132.199.100.145
:: Wecke ZIEL SErver
ping -n 4 %NAS_IP_ADR% >nul
SET NET_LW=B:
SET NET_NAS_Folder=\PC_Sicherung
ECHO %NET_LW% %NET_NAS_FoldeR%
IF NOT EXIST %NET_LW% (CALL :Create_NET_Laufwerk)
exit /b
:Create_NET_Laufwerk:
IF EXIST %ZIEL_LW% (net use %ZIEL_LW% /delete /YES)
SET ServerTargetPath=\\132.199.100.145\PC_Sicherung
CALL :MakeLaufwerk_OhneUSR
IF EXIST %ZIEL_LW% ECHO Ohne USER OK
IF NOT EXIST %ZIEL_LW% CALL :MakeLaufwerk_USR
::Wenn OK, dann komenwir bis dahin
ECHO ** Alles OK Laufwerk %ZIEL_LW% Eingebunden **
::WARTE
ping -n 1 127.0.0.1 > nul
::
-----------------------------------------------------------------------------------
::
-----------------------------------------------------------------------------------
:MakeLaufwerk_OhneUSR
ECHO Probiere es ohne User--
IF NOT EXIST %ZIEL_LW% ECHO net use %ZIEL_LW%
\\132.199.100.145\PC_Sicherung
IF NOT EXIST %ZIEL_LW% (net use %ZIEL_LW%
\\132.199.100.145\PC_Sicherung /persistent:YES /YES > nul)
exit /B
::
-----------------------------------------------------------------------------------
::
-----------------------------------------------------------------------------------
:MakeLaufwerk_USR
ECHO Probiere es mit User --
IF NOT EXIST %ZIEL_LW% ECHO net use %ZIEL_LW%
\\132.199.100.145\PC_Sicherung
IF NOT EXIST %ZIEL_LW% (net use %ZIEL_LW%
\\132.199.100.145\PC_Sicherung /USER:XXXXXX "PASWORT" /persistent:YES
/YES > nul)
IF ERRORLEVEL==2 (ECHO ERRORLEVEL=%ERRORLEVEL% -- Keine Laufwerk
%ZIEL_LW% --**Exit !?!**) & PAUSE & EXIT
IF EXIST %ZIEL_LW% ECHO NET_LW MIT USER OK
exit /B
::
-----------------------------------------------------------------------------------
https://superuser.com/questions/482112/using-robocopy-and-excluding-multiple-directories
Mal sehen was man so lernen kann, wie es andere machen:
robocopy G: C:\backup /MIR /Z /LOG:C:\todaysdate-backup.log /XF
*.iso *.log *.au /XD G:\dir1 .
rcChromeBIF.txt
"Bookmarks" "Custom Dictionary.txt" "Extension Cookies" "Favicons"
"History" "Login Data" "Preferences" "Top Sites" "Visited Links" "Web
Data" "Databases\" "Extensions\" "Local Storage\" "Plugin Data\" "User
Scripts\" "User StyleSheets\"
rcChromeBXF.txt
"Bookmarks.bak" "ChromeDWriteFontCache" "Cookies" "Cookies-journal"
"Current Session" "Current Tabs" "Extension Cookies-journal"
"Favicons-journal" "Google Profile.ico" "History Provider Cache"
"History-journal" "Last Session" "Last Tabs" "Login Data-journal"
"Network Action Predictor" "Network Action Predictor-journal" "Network
Persistent State" "Origin Bound Certs" "Origin Bound Certs-journal"
"QuotaManager" "QuotaManager-journal" "README" "Secure Preferences"
"Shortcuts" "Shortcuts-journal" "Top Sites-journal" "TransportSecurity"
"Web Data-journal"
rcChromeBXD.txt "Application Cache"
"Cache" "data_reduction_proxy_leveldb" "Extension State" "File System"
"GPUCache" "IndexedDB" "JumpListIcons" "JumpListIconsOld" "Local
Extension Settings" "Media Cache" "Pepper Data" "Platform
Notifications" "Service Worker" "Session Storage" "Storage"
"Thumbnails" "Web Applications"
REM ChromeBak.bat
SET chromeprofdir=Google\Chrome\User Data\Default
SET /P rcChrmBIF=<C:\Backup\rcXcludes\rcChromeBIF.txt
SET /P rcChrmBXF=<C:\Backup\rcXcludes\rcChromeBXF.txt
SET /P rcChrmBXD=<C:\Backup\rcXcludes\rcChromeBXD.txt
robocopy
"%LOCALAPPDATA%\%chromeprofdir%" "H:\ChromeBackup\%chromeprofdir%"
%rcChrmBIF% /E /ZB /COPY:DAT /DCOPY:T /MT:4 /XJ /XF %rcChrmBXF% /XD
%rcChrmBXD% /R:10 /W:2 /TBD /NP /V /TS
/Log+:"H:\ChromeBackup\ChromeBackup.log"
Wichtige Kommandos
-----------------------------------------------------
@ECHO OFF
Echo ********* chkdsk c: /f /r /x **********
REM chkdsk c: /f /r /x
REM chkdsk c: /f
Echo ********* Fertig **********
REM pause > nul
exit /b
-----------------------------------------------------
@ECHO OFF
Echo *** START ***
sfc /scannow
exit /b
---------------------------------------------------
SET SOURCE_ORDNER=\Daten
call :SubRoutine_RoboCopy
SET SOURCE_ORDNER=\Users\Labor\Desktop
call :SubRoutine_RoboCopy
:SubRoutine_RoboCopy
REM /IPG:10 Abstand zwischen den paketen um bandbreite
vfreizugeben
robocopy /IPG:100
ROBOCOPY Quelle:
ZIEL: /MIR /IPG:100 Abstand zwischen den Paketen um
Bandbreite freizugeben
exit /b
---------------------------------------------------------------
REM
Prüfen, ob das Backup-Verzeichnis da
set remotedir=\\rechner2\backup\
dir %remotedir% >nul 2>&1 || goto nichtda
... Kopieren starten ...
goto ende
:nichta
echo SORRY, Zielverzeichnis nicht verfügbar/ Rechner aus.
goto ende
:ende
MUSTER .CMDs
set versuche=
set maxversuche=xxxxx
:verbinden
net use x: /delete
net use x: \\server\verzeichnis /persistent:no
if %ERRORLEVEL%==0 goto fertig
set versuche=%versuche%x
if "%versuche%"=="%maxversuche%" goto fehler
ECHO Fehler. Neuer Versuch in 03 Sekunden. (Max. 5 Versuche)
ECHO.
ping 127.0.0.1 -n 4 > nul
goto verbinden
:fehler
ECHO Keine Verbindung zum Server.
ECHO.
PAUSE
goto fertig
TEST pn Netzwerk Server
geht und setze USER & PASSWORT
:: net use \\[Servername]\IPC$ /user:<Name> <Passwort>
:: robocopy <Quelle> \\<Servername>\Pfad /MIR
:: net use \\<Servername>\IPC$ /DEL
@ECHO OFF
ECHO.
chcp 1252 > nul
ECHO ******** START ************
SET NAS_IP_ADR=132.199.XXX.XXX
ECHO %NAS_IP_ADR%
SET USERLOGIN=/USER:XXXXX "XXXXXXX"
ECHO %USERLOGIN%
ECHO DUMMY Login um den USER zu automatisieren
ECHO Fehlermeldungen ignorieren.
(net use \\%NAS_IP_ADR%\IPC$ /persistent:NO) || (net use
\\%NAS_IP_ADR%\IPC$ /user:%USERLOGIN% /persistent:NO)
if errorlevel 0 then ECHO IPC Test erfolgreich=%errorlevel%
if not errorlevel 0 (net use \\%NAS_IP_ADR%\IPC$ /Delete)
& ECHO ERROR=%errorlevel% & GOTO :BEENDEN
net use \\%NAS_IP_ADR%\IPC$ /Delete
if errorlevel 0 then ECHO IPC Delete Test erfolgreich =%errorlevel%
if not errorlevel ECHO IPC Delete Fehler =%errorlevel%
echo.
ECHO READ, Alles OK
echo.
PAUSE
ECHO ******** ENDE *************
:BEENDEN
exit
ROBOCOPY ONLY
Übergabe Qulele ZIEL mit Paramter %1 %2
@ECHO OFF
:: Übergeben werden QuellLaufwerk
%1 C:
:: Source_Ordner
%2 \Daten
:: ZielLaufwerk\ZielOrdner
%3
B:\Backup
:: Bearbeitet 13-10-2018 -- Christof Ermer
:: Umlaute sind ein Problem: Dos verwendet OEM 850 und nicht ANSI oder
UTF-8,
:: deshalb: Stelle die Codepage auf chcp 1252
:: ************
chcp 1252
SET SOURCE_SPACE=%1%2
SET ZIEL_SPACE=%3
SET CPU_CORES=4
:: ---------------- Robocopy Start --------------------
:: =================================================================kies
@ECHO Erzeuge Ziel Ordner, falls nicht da.
if not exist %ZIEL_SPACE% md %ZIEL_SPACE%
@ECHO **************************************************************
@ECHO Alle Daten in %SOURCE_SPACE% werden auf %ZIEL_SPACE% kopiert
@ECHO **************************************************************
:: HELP = ROBOCOPY /?
:: Pfad: ..\..\..\..\..\..\..\..\..\.."\..\Herbst
:: Für den "C:\USER\LocalAdmin"
SET ExludeFolders="Windows" "%1\Windows" "%SOURCE_SPACE%\AppData"
"%SOURCE_SPACE%\Anwendungsdaten" "%SOURCE_SPACE%\Lokale Einstellungen"
"%SOURCE_SPACE%\Netzwerkumgebung" %SOURCE_SPACE%\Recent"
"%SOURCE_SPACE%\Cookies" "%SOURCE_SPACE%"\Druckumgebung"
SET ROBCPY_Arglist=/E /XO /MT:%CPU_CORES% /R:1 /W:1 /V /XA:SH /FFT /DST
/IPG:100 /XJD /NP /NDL /XD "ExludeFolders" /log+:"%logfile%"
@ECHO Robocopy-Argumetenliste = %ROBCPY_Arglist%
attrib -h -s %ZIEL_SPACE%
robocopy %SOURCE_SPACE% %ZIEL_SPACE% %ROBCPY_Arglist%
attrib -h -s %ZIEL_SPACE%
exit /b
:: ---------------- Robocopy Ende ------------------
:: ---PARAMETER----------------------------------------------------
:: PAUSE
::
https://www.axel-hahn.de/batch/helferlein-und-tabellen/alle-windows-kommandos?id=robocopy
:: https://www.wintotal.de/robocopy-der-kopier-gigant/
::
https://superuser.com/questions/814102/robocopy-command-to-do-an-inc::ental-backup
:: I like to use the following:
:: robocopy "C:\Users\<user>" "F:\robocopy\<user>" /R:0
/XA:SH /E /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE
:: %ROBCPY_Arglist%
:: /MIR : Spiegelt eine Verzeichnisstruktur (Entspricht "/E" mit
"/PURGE").
:: /E : Kopiert Unterverzeichnisse, einschließlich leerer
Unterverzeichnisse.
:: /A : Kopiert nur Dateien mit dem "Archive"-Attribut.
:: /M : Kopiert nur Dateien mit dem "Archive"-Attribut und setzt das
Attribut zurück.
:: /XO : Schließt ältere Dateien aus.
:: /XA:SH No Hiddenfile
:: /FFT : Geht von FAT-Uhrzeitangaben für Dateien aus
(Granularität von zwei Sekunden).
:: /DST : Kompensiert Zeitunterschiede von einer Stunden aufgrund
der Sommerzeit.
:: /V : Erstellt eine ausführliche Ausgabe mit ausgelassenen Dateien.
:: /NP : Kein Status - der Prozentsatz kopierter Elemente wird
nicht angezeigt.
:: /LOG+:Datei :: Gibt den Status der Protokolldatei aus (wird an das
vorhandene Protokoll angefügt).
:: /Z : Copy files in restartable mode (survive network glitch).
:: /B : Copy files in Backup mode.
:: /ZB : Use restartable mode; if access denied use Backup mode.
MACHT NUT ÄRGER !!!!
:: /XJD : Exclude Junctioned Directories
:: /TEE : werden die Informationen sowohl in die Kommandozeile als auch
in die Logdatei geschrieben
:: /ZB
:: ?? /COPYALL sttat Copy:DATSOU
:: /COPYALL
:: /Copy:DATU
:: /TEE werden die Informationen sowohl in die Kommandozeile als
auch in die Logdatei geschrieben
:: /IPG:100 Abstand zwischen den paketen um bandbreite
freizugeben
exit
@ECHO OFF
@Echo Bearbeitet 19-10-2018 -- Christof Ermer
REM Aufruf im Windows Scheduler. Passe Labornummer XXXX an
REM C:\Windows\System32\cmd.exe /c ".\Robocopy_DATEN_toNAS_LabXXXX.cmd"
REM Umlaute sind ein Problem: Dos verwendet OEM 850 und nicht ANSI oder
UTF-8,
REM deshalb: Stelle die Codepage auf chcp 1252
REM ***************
chcp 1252
REM ***************
REM
-----------------------------------------------------------------------------
REM *** HIER die SETs ANPASSEN ****
SET LABOR_RAUM_NR=2021
REM **** Hier kann man das Ziel Laufwerk einstellen, evtl mit SubOrdner
SET ZIEL_LW=B:
SET ZIEL_SUB_Ordner=\RcpyBackup
REM Anzahl der CPU Cores des zu sichernden Rechners
SET CPU_CORES=4
REM
-----------------------------------------------------------------------------
SET LOG_ORDNER=\LOGs
SET ROBOLOG=%ZIEL_LW%%LOG_ORDNER%
if not exist %ROBOLOG% md %ROBOLOG%
SET
logfile=%ROBOLOG%\%date:~-4%-%date:~3,2%-%date:~0,2%_robocopy_log_Lab_%LABOR_RAUM_NR%.txt
DEL %ROBOLOG%\*%LABOR_RAUM_NR%.txt
@ECHO Neue Protokolldatei : %logfile%le
@ECHO ************************** START der Sicherung
************************
date /t
time /T
REM *** Es werden nur ausgesuchte Ornder gesichert. Das ist der
sicherste Weg ***
REM *** Kopiere so viele Sektionen wie gebraucht ***
REM *** Trage SOURCE_LW und SOURCE_ORDNER getrent ein. ***
REM ............. Anpassen und einfügen wenn verändert.
...............
SET SOURCE_LW=C:
REM .............
REM Ordnernamen mit {LEER Zeichen} funktionieren nicht
REM Lösung:Klammere d. {Ordner Name}, mit "" Bsp: "Eigene Dateien"
REM C:\Batch-NAS
SET SOURCE_ORDNER=\Batch-NAS
call :SubRoutine_RoboCopy
REM C:\Users\LocalAdmin
SET SOURCE_ORDNER=\Users\LocalAdmin
call :SubRoutine_RoboCopy
REM C:\Users\LocalAdmin\Desktop
REM SET SOURCE_ORDNER=\Users\LocalAdmin\Desktop
REM call :SubRoutine_RoboCopy
REM C:\Daten
SET SOURCE_ORDNER=\Daten
call :SubRoutine_RoboCopy
REM C:\drivers
SET SOURCE_ORDNER=\drivers
call :SubRoutine_RoboCopy
REM C:\FMC Quick Access
SET SOURCE_ORDNER=\"FMC Quick Access"
call :SubRoutine_RoboCopy
SET SOURCE_ORDNER=\Geräte
call :SubRoutine_RoboCopy
REM C:\HyperTermXP
SET SOURCE_ORDNER=\HyperTermXP
call :SubRoutine_RoboCopy
REM C:\IDE
SET SOURCE_ORDNER=\IDE
call :SubRoutine_RoboCopy
REM C:\Install_Backup
SET SOURCE_ORDNER=\Install_Backup
call :SubRoutine_RoboCopy
REM C:\Installs
SET SOURCE_ORDNER=\Installs
call :SubRoutine_RoboCopy
REM LabView_VI's
SET SOURCE_ORDNER=\"LabView_VI's"
call :SubRoutine_RoboCopy
REM C:\Manuals
SET SOURCE_ORDNER=\Manuals
call :SubRoutine_RoboCopy
REM C:\rsync
SET SOURCE_ORDNER=\rsync
call :SubRoutine_RoboCopy
@ECHO ************************** ENDE der Sicherung
************************
date /t
time /T
REM *** Verlasse das Batch ***
REM pause
exit /b
REM ------------------------------------------------------------------
REM ---------------- Subroutine Start
------------------------------
:SubRoutine_RoboCopy
@ECHO OFF
SET SOURCE_SPACE=%SOURCE_LW%%SOURCE_ORDNER%
SET ZIEL_SPACE=%ZIEL_LW%%ZIEL_SUB_Ordner%%SOURCE_ORDNER%
@ECHO Erzeuge Ziel Ordner, falls nicht da.
if not exist %ZIEL_SPACE% md %ZIEL_SPACE%
@ECHO Quellverzeichnis: %SOURCE_SPACE%
@ECHO Zielverzeichnis : %ZIEL_SPACE%
@ECHO ******************************************************************
@ECHO Alle Daten in %SOURCE_SPACE% werden auf %ZIEL_SPACE% kopiert
@ECHO ******************************************************************
REM *** Hier nichts verändern ***
REM HELP = ROBOCOPY /?
SET ROBCPY_Arglist=/E /XO /MT:%CPU_CORES% /R:1 /W:1 /V /XA:SH /FFT /DST
/NP /NDL /XD "C:\Windows /log+:"%logfile%"
@ECHO Robocopy-Argumentenliste = %ROBCPY_Arglist%
attrib -h -s %ZIEL_SPACE%
robocopy %SOURCE_SPACE% %ZIEL_SPACE% %ROBCPY_Arglist%
attrib -h -s %ZIEL_SPACE%
exit /b
REM ---------------- Subroutine Ende
------------------------------
REM ------------------------------------------------------------------
REM PAUSE
REM
https://www.axel-hahn.de/batch/helferlein-und-tabellen/alle-windows-kommandos?id=robocopy
REM https://www.wintotal.de/robocopy-der-kopier-gigant/
REM
https://superuser.com/questions/814102/robocopy-command-to-do-an-incremental-backup
REM I like to use the following:
REM robocopy "C:\Users\<user>" "F:\robocopy\<user>" /R:0
/XA:SH /E /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE
exit
BEISPIELE BEISPIELE BEISPIELE BEISPIELE BEISPIELE BEISPIELE BEISPIELE
BEISPIELE BEISPIELE BEISPIELE BEISPIELE BEISPIELE BEISPIELE BEISPIELE
BEISPIELE BEISPIELE
{FENSTER*R] --> cvcontrol userpasswords2
:: NETZWERK TESTEN
SET tonixp=132.19..100.145
BSP:
ping %tonixp% | find /i "Reply" && goto :nostart || goto
:lanstart1
ping
:nostart
net use z: /d
net use z: \\132.199.100.145\tmp
exit /b
:lanstart1
D:\usage\Sikostart\LANStartCMD.exe 00-22-2E-41-6F-14
ping -n 40 %tonixp% | find /i "Reply" && goto :lanstart2 ||
goto :lanstart1
:lanstart2
ping -n 20 %tonixp%
net use z: /d
net use z: \\%tonixp%\sikoneu
xcopy /D /E /Y /C /H /F d:\*.* z:\
rem net use z: /d
D:\usage\Sikostart\shutdown -f -s -m \\%tonixp%
ping -n 10 %tonixp%
D:\usage\Sikostart\shutdown -f -s -m \\%tonixp%
ping -n 10 %tonixp%
D:\usage\Sikostart\shutdown -f -s -m \\%tonixp%
exit
BEISPIELE:
Set ROOT=%~dp0
call :GetFullPath "%ROOT%\.." ROOT
set SCRIPT_NAME=%~nx0
where /q libmmd.dll
|| echo Warning: libmmd.dll couldn't be found in %%PATH%%. Please check
if the redis.......................
if exist
"%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\bin\intel64\arch_descriptions"
( ..... )
: Check if Python is installed
python --version 2>NUL
if errorlevel 1 (
echo Error^: Python is not installed. Please install
Python 3.5. or 3.6 ^(64-bit^) from
https://www.python.org/downloads/
exit /B 1
)
:: Check Python version
for /F "tokens=* USEBACKQ" %%F IN (`python --version 2^>^&1`) DO
(
set version=%%F
)
echo %var%
UNINSTALLER.BAT von ECLIPSE
@echo off
set INSTALL_DIR="%~dp0"\..
if not exist %INSTALL_DIR%\Uninstaller\uninstaller.jar (
echo "IZpack uninstaller is missing, abort..."
pause
exit /B 1
)
rem Find if Java is install somewhere on the system
for /F "tokens=* USEBACKQ" %%F in (`where javaw.exe`) do (
set JAVA="%%F"
goto EOLOOP
)
:EOLOOP
if exist %JAVA% goto UNINSTALL
rem Java not found try with internal JRE
if not exist %INSTALL_DIR%\jre goto UNINSTALL
set SW_TMP="%TMP%"\sw4stm32_uninstaller
rmdir /S /Q %SW_TMP%
mkdir %SW_TMP%
move /Y %INSTALL_DIR%\jre %SW_TMP% >NUL
set JAVA=%SW_TMP%\jre\bin\javaw.exe
:UNINSTALL
echo Starting uninstaller...
%JAVA% -jar %INSTALL_DIR%\Uninstaller\uninstaller.jar
timeout /T 5 /NOBREAK
BESPIEL
@echo off &setlocal
rem überprüfen, ob im richtigen WLAN (also zu Hause) angemeldet
rem die SSID wird in der Variable "SSID" gespeichert
for /f "tokens=1* delims=:" %%i in (
'netsh wlan show interfaces ^| findstr /rxc:"[ ]* SSID [ ]*: ..*"'
) do for /f "tokens=*" %%k in ("%%j") do set "SSID=%%k"
if "%SSID%" NEQ "MyNetwork" goto :Abbruch
:CheckForNAS
REM errorlevel 1 heisst groesser oder gleich!
set /a counter+=1
set result=false
tracert media-store | find "Zielhost nicht erreichbar"
if errorlevel == 1 goto da
if errorlevel == 0 goto nichts
goto nichts
:da
echo NAS gefunden
goto Netzlaufwerke_verbinden
:nichts
echo NAS nicht gefunden
echo %counter%. Versuch
REM spätestens nach dem 4.Versuch sollte das NAS gestartet sein
if %counter% EQU 1 set result=true
if %counter% EQU 5 set result=true
if %counter% EQU 10 goto Abbruch
if "%result%"=="true" (
c:
cd "C:\Program Files (x86)\WOL2"
WOL2.exe -file C:\Users\Klaus.User1\Documents\hosts.xml -wake Media-Store.fritz.box -close
GOTO CheckForNAS
) ELSE (
TIMEOUT /T 30
GOTO CheckForNAS
)
:Netzlaufwerke_verbinden
REM noch mal prüfen, ob das NAS tatsächlich vorhanden ist
for /f %%a in ('ping 192.168.178.10 ^|find /C "Antwort von"') do (
if %%a EQU 4 (
echo "Laufwerke zum Media-Store (NAS) einrichten."
timeout 10
SET HOMESDrive=V:
SET PhotoDrive=W:
SET MusikDrive=X:
SET VideoDrive=Y:
if not exist %MusikDrive% (net use %MusikDrive% \\192.168.178.10\music /persistent:no /user:limitedUser1 Password )
if not exist %VideoDrive% (net use %VideoDrive% \\192.168.178.10\video /persistent:no /user:limitedUser1 Password )
if not exist %HOMESDrive% (net use %HOMESDrive% \\192.168.178.10\home /persistent:no /user:limitedUser1 Password )
if not exist %PhotoDrive% (net use %PhotoDrive% \\192.168.178.10\photo /persistent:no /user:limitedUser1 Password )
)
)
TIMEOUT /T 5
goto Ende
:Abbruch
echo Du bist nicht im Netzwerk "MyNetwork" angemeldet oder
echo die Verbindung kann aus einem anderen Grund nicht hergestelt werden
echo --> Abbruch
:Ende
Pause