Problem bei Umsetzung meines Vorhabens
Guten morgen =)
Wie einige schon wissen habe ich eine Datei zum herunterladen von Java etc. erstellt. Die Dateien werden heruntergeladen wenn sie ein gewisses Alter überschreiten. Nun möchte ich diesen Download erst per Abfrage bestätigen. Leider weiß ich nicht wie ich dieses umsetzen kann.
Hier soll die Abfrage hin
Mfg Noobstar0815
Wie einige schon wissen habe ich eine Datei zum herunterladen von Java etc. erstellt. Die Dateien werden heruntergeladen wenn sie ein gewisses Alter überschreiten. Nun möchte ich diesen Download erst per Abfrage bestätigen. Leider weiß ich nicht wie ich dieses umsetzen kann.
cls
@echo off
rem lw vorab auf default K: setzen
set lw=K:
echo Der aktuell ausgewaehlte Laufwerksbuchstabe ist "%lw%". Falls Sie ihn aendern moechten geben Sie bitte einen neuen Laufwerksbuchstaben an.
set /p lw="Bitte freien Laufwerksbuchstaben angeben (G:...[K:]...Z:) "
net use %lw% \\WWW-HGR\BDR\BDR-Benutzer\Ausbildung\automatischeUpdateswoechentlich
set /A counter=0
for /f "tokens=1-5 delims=. " %%i in ("%date%") do set "dayc=%%j" & set "monthc=%%k" & set "yearc=%%l"
:loop
set /A counter=%counter%+1
if %counter%==1 set ordner=Adobe Flash Player Active X& set ProgName=Adobe Flash Player Active X
if %counter%==2 set ordner=Adobe Flash Player Plug-In& set ProgName=Adobe Flash Player Plug-In
if %counter%==3 set ordner=Adobe Reader& set ProgName=Adobe Reader
if %counter%==4 set ordner=Adobe Shockwave& set ProgName=Adobe Shockwave
if %counter%==5 set ordner=Firefox& set ProgName=Firefox
if %counter%==6 set ordner=Java& set ProgName=Java
if %counter%==7 set ordner=Microsoft Defender& set ProgName=Microsoft Defender
if %counter%==8 goto END
for /f "delims=" %%i in ('dir /a-d /tw "%lw%\%ordner%" ^| findstr /b [0-9]') do (
for /f "tokens=1-6*delims=.: " %%a in ("%%i") do (
set "dayf=%%a"
set "monthf=%%b"
set "yearf=%%c"
)
)
if %dayf%==08 set "Svar=08" & set /a dayf=1%Svar%-100
if %dayf%==09 set "Svar=09" & set /a dayf=1%Svar%-100
if %monthf%==08 set /a set "Svar=09" & set /a monthf=1%Svar%-100
if %monthf%==09 set /a set "Svar=09" & set /a monthf=1%Svar%-100
if %dayc%==08 set "Svar=08" & set /a dayc=1%Svar%-100
if %dayc%==09 set "Svar=09" & set /a dayc=1%Svar%-100
if %monthc%==08 set /a set "Svar=09" & set /a monthc=1%Svar%-100
if %monthc%==09 set /a set "Svar=09" & set /a monthc=1%Svar%-100
set /a yearf=%yearf%
set /a yearc=%yearc%
set dDiv1=0
set dDiv2=0
set mDiv1=0
set mDiv2=0
set yDiv1=0
set yDiv2=0
if %dayf% GTR %dayc% (
set /a dDiv1=%dayf%-%dayc%
) else (
set /a dDiv2=%dayc%-%dayf%
)
if NOT %dDiv1%==0 set /a dDiv=%dDiv1%
if NOT %dDiv2%==0 set /a dDiv=%dDiv2%
if %monthf% GTR %monthc% (
set /a mDiv1=%monthf%-%monthc%
) else (
set /a mDiv2=%monthc%-%monthf%
)
if %yearf% LSS %yearc% set /a %yDiv1%=%yearf%-%yearc%
if %mDiv1%==0 (
set /a mDivd=0
) else (
set /a mDivd=%mDiv1%*30
)
if %mDiv2%==0 (
set /a mDivd=0
) else (
set /a mDivd=%mDiv2%*30
)
if %yDiv1%==0 (
set /a yDivd=0
) else (
set /a yDivd=%yDiv1%*365
)
if %yDiv2%==0 (
set /a yDivd=0
) else (
set /a yDivd=%yDiv2%*365
)
if /i %yearf% LSS %yearc% (
if /i %monthf% LSS %monthc% (
if /i %dayf% LSS %dayc% (
set /a age=365+%mDivd%+%dDiv%
) else (
set /a age=365+%dDiv%-%mDivd%
)
) else (
set /a age=365-(%dDiv%+%mDivd%)
)
) else (
if /i %monthf% LSS %monthc% (
if /i %dayf% LSS %dayc% (
set /a age=%mDivd%+%dDiv%
) else (
set /a age=%mDivd%-%dDiv%
)
) else (
set /a age=%mDivd%+%dDiv%
)
)
echo Das Programm %ProgName% ist vom %dayf%.%monthf%.%yearf% und ist somit %age% Tage alt.
if "%age%"=="" set age=error
if %counter%==1 goto FlashPlayerAcitveX
if %counter%==2 goto FlashPlayerPlug-In
if %counter%==3 goto AdobeReader
if %counter%==4 goto Shockwave
if %counter%==5 goto Firefox
if %counter%==6 goto Java
if %counter%==7 goto MSDefender
goto LOOP
:FlashPlayerAcitveX
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_active_x.msi
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_active_x.msi
goto loop
:FlashPlayerPlug-In
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_plugin.msi
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_plugin.msi
goto loop
:AdobeReader
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping ftp://ftp.adobe.com/pub/adobe/reader/win/11.x/11.0.03/de_DE/AdbeRdr11003_de_DE.exe
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping ftp://ftp.adobe.com/pub/adobe/reader/win/11.x/11.0.03/de_DE/AdbeRdr11003_de_DE.exe
goto loop
:Shockwave
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://www.adobe.com/go/sw_msi_installer
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://www.adobe.com/go/sw_msi_installer
goto loop
:Firefox
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://hicap.frontmotion.com/Firefox/Firefox-21.0/Firefox-21.0-de.msi
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://hicap.frontmotion.com/Firefox/Firefox-21.0/Firefox-21.0-de.msi
goto loop
:Java
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://javadl.sun.com/webapps/download/AutoDL?BundleId=76860
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://javadl.sun.com/webapps/download/AutoDL?BundleId=76860
goto loop
:MSDefender
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.microsoft.com/download/b/2/3/b2353327-ad30-4800-a256-51d6ec99baec/windowsdefender.msi
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.microsoft.com/download/b/2/3/b2353327-ad30-4800-a256-51d6ec99baec/windowsdefender.msi
goto loop
:END
net use %lw% /d
pause
Mfg Noobstar0815
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207196
Url: https://administrator.de/forum/problem-bei-umsetzung-meines-vorhabens-207196.html
Ausgedruckt am: 28.12.2024 um 15:12 Uhr
9 Kommentare
Neuester Kommentar
Dann mach halt folgendes:
Springe aus dem loop nicht jeweils zum Download des jeweiligen Programms sondern sammle die jeweiligen Programme in einer Variablen und mache dann die jeweiligen Downloads in einer Schleife am Schluss:
ganz oben im Script noch folgendes einfügen (ACHTUNG WICHTIG: nach der Zeile set NL=^ müssen zwei Leerzeilen stehen, Zur Info: dies erzeugt einen Zeilenumbruch):
dann in deinem Script ab Zeile 116 alles rausnehmen und hierdurch ersetzen:
Denke das sollte den Denkanstoss geben ...
Grüße Uwe
Springe aus dem loop nicht jeweils zum Download des jeweiligen Programms sondern sammle die jeweiligen Programme in einer Variablen und mache dann die jeweiligen Downloads in einer Schleife am Schluss:
ganz oben im Script noch folgendes einfügen (ACHTUNG WICHTIG: nach der Zeile set NL=^ müssen zwei Leerzeilen stehen, Zur Info: dies erzeugt einen Zeilenumbruch):
@echo off & setlocal ENABLEDELAYEDEXPANSION
set URLsToDownload=
set NL=^
if "%age%" gtr "15" (set URLsToDownload=!URLsToDownload!!NL!!counter!)
if "!counter!" == "7" (goto STARTDOWNLOAD) else (goto loop)
:STARTDOWNLOAD
set /p startDL=Soll der Download der veralteten Programme gestartet werden ?(j/n)
if /i "%startDL%" == "n" goto END
for /f "tokens=*" %%k in ("!URLsToDownload!") DO @(
if %%k == 1 (
set ordner=Adobe Flash Player Active X
wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_active_x.msi
)
if %%k == 2 (
set ordner=Adobe Flash Player Plug-In
wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_plugin.msi
)
if %%k == 3 (
set ordner=Adobe Reader
wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping ftp://ftp.adobe.com/pub/adobe/reader/win/11.x/11.0.03/de_DE/AdbeRdr11003_de_DE.exe
)
if %%k == 4 (
set ordner=Adobe Shockwave
wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://www.adobe.com/go/sw_msi_installer
)
if %%k == 5 (
set ordner=Firefox
wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://hicap.frontmotion.com/Firefox/Firefox-21.0/Firefox-21.0-de.msi
)
if %%k == 6 (
set ordner=Java
wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://javadl.sun.com/webapps/download/AutoDL?BundleId=76860
)
if %%k == 7 (
set ordner=Microsoft Defender
wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.microsoft.com/download/b/2/3/b2353327-ad30-4800-a256-51d6ec99baec/windowsdefender.msi
)
)
:END
net use %lw% /d
pause
Denke das sollte den Denkanstoss geben ...
Grüße Uwe
also zuerst die ! sind für Verzögerte Auflösung siehe dazu bitte bei Google nach, das hab ich hier schon X mal erklärt.
Im ersten Block werden die Variablen auf 0 gesetzt und das NL erzeugt einen Zeilenumbruch, den wir später brauchen.
In URLsToDownload wird in jedem Durchgang deines Loops die Zahl des Counters mit einem zusätzlichen Zeilenumbruch hinzugefügt, aber nur wenn das Programm schon älter ist. Diesen String druchlaufen wir am Schluss mit einer FOR-Schleife; dabei steht
hoffe das war einigermaßen klar...
Im ersten Block werden die Variablen auf 0 gesetzt und das NL erzeugt einen Zeilenumbruch, den wir später brauchen.
In URLsToDownload wird in jedem Durchgang deines Loops die Zahl des Counters mit einem zusätzlichen Zeilenumbruch hinzugefügt, aber nur wenn das Programm schon älter ist. Diesen String druchlaufen wir am Schluss mit einer FOR-Schleife; dabei steht
%%k
jeweils für den Download des jeweiligen Programs das heruntergeladen werden muss(in der Reihenfolge die du oben in deiner Schleife festlegst)hoffe das war einigermaßen klar...