Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Problem bei Umsetzung meines Vorhabens

Frage Entwicklung Batch & Shell

Mitglied: Noobstar0815

Noobstar0815 (Level 1) - Jetzt verbinden

29.05.2013 um 09:30 Uhr, 1427 Aufrufe, 9 Kommentare

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.

01.
cls 
02.
@echo off 
03.
rem lw vorab auf default K: setzen 
04.
set lw=K: 
05.
echo Der aktuell ausgewaehlte Laufwerksbuchstabe ist "%lw%". Falls Sie ihn aendern     moechten geben Sie bitte einen neuen Laufwerksbuchstaben an. 
06.
set /p lw="Bitte freien Laufwerksbuchstaben angeben (G:...[K:]...Z:) " 
07.
net use %lw% \\WWW-HGR\BDR\BDR-Benutzer\Ausbildung\automatischeUpdateswoechentlich 
08.
 
09.
set /A counter=0 
10.
 
11.
for /f "tokens=1-5 delims=. " %%i in ("%date%") do set "dayc=%%j" & set "monthc=%%k" & set "yearc=%%l" 
12.
 
13.
:loop 
14.
 
15.
set /A counter=%counter%+1 
16.
 
17.
if %counter%==1 set ordner=Adobe Flash Player Active X& set ProgName=Adobe Flash Player Active X 
18.
if %counter%==2 set ordner=Adobe Flash Player Plug-In& set ProgName=Adobe Flash Player Plug-In 
19.
if %counter%==3 set ordner=Adobe Reader& set ProgName=Adobe Reader 
20.
if %counter%==4 set ordner=Adobe Shockwave& set ProgName=Adobe Shockwave 
21.
if %counter%==5 set ordner=Firefox& set ProgName=Firefox 
22.
if %counter%==6 set ordner=Java& set ProgName=Java 
23.
if %counter%==7 set ordner=Microsoft Defender& set ProgName=Microsoft Defender 
24.
if %counter%==8 goto END 
25.
 
26.
for /f "delims=" %%i in ('dir /a-d /tw "%lw%\%ordner%" ^| findstr /b [0-9]') do ( 
27.
	for /f "tokens=1-6*delims=.: " %%a in ("%%i") do ( 
28.
		set "dayf=%%a" 
29.
		set "monthf=%%b" 
30.
		set "yearf=%%c" 
31.
32.
33.
 
34.
if %dayf%==08 set "Svar=08" & set /a dayf=1%Svar%-100 
35.
if %dayf%==09 set "Svar=09" & set /a dayf=1%Svar%-100 
36.
if %monthf%==08 set /a set "Svar=09" & set /a monthf=1%Svar%-100 
37.
if %monthf%==09 set /a set "Svar=09" & set /a monthf=1%Svar%-100 
38.
if %dayc%==08 set "Svar=08" & set /a dayc=1%Svar%-100 
39.
if %dayc%==09 set "Svar=09" & set /a dayc=1%Svar%-100 
40.
if %monthc%==08 set /a set "Svar=09" & set /a monthc=1%Svar%-100 
41.
if %monthc%==09 set /a set "Svar=09" & set /a monthc=1%Svar%-100 
42.
 
43.
set /a yearf=%yearf% 
44.
set /a yearc=%yearc% 
45.
 
46.
set dDiv1=0 
47.
set dDiv2=0 
48.
set mDiv1=0 
49.
set mDiv2=0 
50.
set yDiv1=0 
51.
set yDiv2=0 
52.
 
53.
if %dayf% GTR %dayc% ( 
54.
	set /a dDiv1=%dayf%-%dayc% 
55.
	) else ( 
56.
	set /a dDiv2=%dayc%-%dayf% 
57.
58.
 
59.
if NOT %dDiv1%==0 set /a dDiv=%dDiv1% 
60.
if NOT %dDiv2%==0 set /a dDiv=%dDiv2% 
61.
 
62.
if %monthf% GTR %monthc% ( 
63.
	set /a mDiv1=%monthf%-%monthc% 
64.
	) else ( 
65.
	set /a mDiv2=%monthc%-%monthf% 
66.
67.
 
68.
if %yearf% LSS %yearc% set /a %yDiv1%=%yearf%-%yearc% 
69.
 
70.
if %mDiv1%==0 ( 
71.
	set /a mDivd=0 
72.
	) else ( 
73.
	set /a mDivd=%mDiv1%*30 
74.
75.
 
76.
if %mDiv2%==0 ( 
77.
	set /a mDivd=0 
78.
	) else ( 
79.
	set /a mDivd=%mDiv2%*30 
80.
81.
 
82.
if %yDiv1%==0 ( 
83.
	set /a yDivd=0 
84.
	) else ( 
85.
	set /a yDivd=%yDiv1%*365 
86.
87.
 
88.
if %yDiv2%==0 ( 
89.
	set /a yDivd=0 
90.
	) else ( 
91.
	set /a yDivd=%yDiv2%*365 
92.
93.
 
94.
if /i %yearf% LSS %yearc% ( 
95.
	if /i %monthf% LSS %monthc% ( 
96.
		if /i %dayf% LSS %dayc% ( 
97.
			set /a age=365+%mDivd%+%dDiv% 
98.
			) else ( 
99.
			set /a age=365+%dDiv%-%mDivd% 
100.
101.
		) else ( 
102.
	set /a age=365-(%dDiv%+%mDivd%) 
103.
104.
	) else ( 
105.
		if /i %monthf% LSS %monthc% ( 
106.
			if /i %dayf% LSS %dayc% ( 
107.
				set /a age=%mDivd%+%dDiv% 
108.
				) else ( 
109.
				set /a age=%mDivd%-%dDiv% 
110.
111.
			) else ( 
112.
			set /a age=%mDivd%+%dDiv% 
113.
114.
115.
		 
116.
echo Das Programm %ProgName% ist vom %dayf%.%monthf%.%yearf% und ist somit %age% Tage alt.
Hier soll die Abfrage hin
01.
 
02.
if "%age%"=="" set age=error 
03.
 
04.
if %counter%==1 goto FlashPlayerAcitveX 
05.
if %counter%==2 goto FlashPlayerPlug-In 
06.
if %counter%==3 goto AdobeReader 
07.
if %counter%==4 goto Shockwave 
08.
if %counter%==5 goto Firefox 
09.
if %counter%==6 goto Java 
10.
if %counter%==7 goto MSDefender 
11.
 
12.
 
13.
 
14.
goto LOOP 
15.
 
16.
:FlashPlayerAcitveX 
17.
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 
18.
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 
19.
 
20.
goto loop 
21.
 
22.
:FlashPlayerPlug-In 
23.
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 
24.
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 
25.
 
26.
goto loop 
27.
 
28.
:AdobeReader 
29.
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 
30.
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 
31.
 
32.
goto loop 
33.
 
34.
:Shockwave 
35.
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://www.adobe.com/go/sw_msi_installer 
36.
if %age% GTR 15 DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://www.adobe.com/go/sw_msi_installer 
37.
 
38.
goto loop 
39.
 
40.
:Firefox 
41.
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 
42.
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 
43.
 
44.
goto loop 
45.
	 
46.
:Java 
47.
if %age%==error DEL /Q "%lw%\%ordner%\*.*" & wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://javadl.sun.com/webapps/download/AutoDL?BundleId=76860 
48.
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 
49.
 
50.
goto loop 
51.
 
52.
:MSDefender 
53.
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 
54.
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 
55.
 
56.
goto loop 
57.
 
58.
 
59.
:END 
60.
net use %lw% /d 
61.
pause
Mit freundlichen Grüßen Noobstar0815
Mitglied: colinardo
29.05.2013, aktualisiert um 10:32 Uhr
mit so einer Konstruktion solltest du klarkommen ...
01.
set /p dl=Download starten ?(j/n) 
02.
if /i "%dl%" == "j" (goto :STARTDOWNLOAD) else (goto :NODOWNLOAD)
Grüße Uwe
Bitte warten ..
Mitglied: Noobstar0815
29.05.2013 um 11:15 Uhr
Hallo Uwe, normal fragt wget auch nach ob es heruntergeladen werden soll. Ich möchte es aber gerne so haben: Erst von allen Dateien das Alter ermitteln und ausgeben, dann eine Frage "Soll das Programm XYZ heruntergeladen werden?" oder bei mehreren "Sollen die Programme XYZ YXZ ZXY heruntergeladen werden?" und erst bei Bestätigung dann nur die genannten Programme... Da weiß ich nicht wie ich das umsetzen kann
Bitte warten ..
Mitglied: Endoro
29.05.2013 um 11:29 Uhr
Hallo Noobstar,

du hattest doch hier schon mal das Alter berechnet, wo ist jetzt das Problem?

Gruss!
Bitte warten ..
Mitglied: Noobstar0815
29.05.2013 um 11:37 Uhr
Hallo Endoro,
das Alter bestimmen ist dieses Mal nicht das Problem =) Sondern eher die richtige Verwertung :D
Meine Batch arbeitet im Moment so: Counter+1 -> bestimme Alter des ersten Programm -> Ausgabe: Programmname und Alter -> Älter als 15 Tage = neu runterladen -> Counter+1 -> nächste Programm

Haben möchte ich es aber so:
Counter+1 -> bestimme Alter aller Programme -> Ausgabe der Alter+Namen -> Abfrage ob alte Daten neu heruntergeladen werden sollen

Leider weiß ich nicht wie ich das genau anstellen soll :/

Mit freundlichen Grüßen Noobstar0815
Bitte warten ..
Mitglied: Noobstar0815
29.05.2013 um 11:41 Uhr
Also mir ist schon klar, dass das Alter der Programme nicht auf einmal stattfindet sondern nacheinander, das widerrum heißt ich müsste mir jedes mal eine neue Variable setzen für den Namen und so weiter.
Bitte warten ..
Mitglied: colinardo
29.05.2013, aktualisiert um 12:18 Uhr
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):
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set URLsToDownload= 
03.
set NL=^ 
04.
 
05.
 
dann in deinem Script ab Zeile 116 alles rausnehmen und hierdurch ersetzen:

01.
if "%age%" gtr "15" (set URLsToDownload=!URLsToDownload!!NL!!counter!) 
02.
if "!counter!" == "7" (goto STARTDOWNLOAD) else (goto loop) 
03.
 
04.
:STARTDOWNLOAD 
05.
set /p startDL=Soll der Download der veralteten Programme gestartet werden ?(j/n) 
06.
if /i "%startDL%" == "n" goto END 
07.
for /f "tokens=*" %%k in ("!URLsToDownload!") DO @( 
08.
	if %%k == 1 ( 
09.
                set ordner=Adobe Flash Player Active X 
10.
		wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_active_x.msi  
11.
12.
	if %%k == 2 ( 
13.
                set ordner=Adobe Flash Player Plug-In 
14.
		wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_11_plugin.msi  
15.
16.
	if %%k == 3 ( 
17.
                set ordner=Adobe Reader 
18.
		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  
19.
20.
	if %%k == 4 ( 
21.
                set ordner=Adobe Shockwave 
22.
		wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://www.adobe.com/go/sw_msi_installer 
23.
24.
	if %%k == 5 ( 
25.
                set ordner=Firefox 
26.
		wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://hicap.frontmotion.com/Firefox/Firefox-21.0/Firefox-21.0-de.msi 
27.
28.
	if %%k == 6 ( 
29.
                set ordner=Java 
30.
		wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://javadl.sun.com/webapps/download/AutoDL?BundleId=76860  
31.
32.
	if %%k == 7 ( 
33.
                set ordner=Microsoft Defender 
34.
		wget --quiet --continue --directory-prefix="%lw%\%ordner%" --timestamping http://download.microsoft.com/download/b/2/3/b2353327-ad30-4800-a256-51d6ec99baec/windowsdefender.msi 
35.
36.
 
37.
38.
:END 
39.
net use %lw% /d 
40.
pause
Denke das sollte den Denkanstoss geben ...

Grüße Uwe
Bitte warten ..
Mitglied: Noobstar0815
29.05.2013 um 12:30 Uhr
Vielen Dank Uwe =)
Leider habe ich ein Problem bei deinem Code.
Ich verstehe den ersten Block nicht, und im 2. Block verstehe ich die Zeilen 1,2 und 7 nicht. Bei 7 verstehe ich nicht ganz wofür das %%k da ist, aus dem Kontext nehme ich, dass er der Counter ist, allerdings weiß ich nciht wo ich das genau nach schauen kann, welche Variable bei der for-Schleife wofür da ist, mit for help versteh ichs nicht. Bei den Zeilen 1 und 2 habe ich ein Problem mit den !! da ich nicht weiß wofür diese da sind.
Könntest du mir dies bitte noch erklären? =)
Mit freundlichen Grüßen Noobstar0815
Bitte warten ..
Mitglied: colinardo
29.05.2013, aktualisiert um 12:41 Uhr
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 %%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...
Bitte warten ..
Mitglied: Noobstar0815
29.05.2013 um 12:52 Uhr
Danke schön =)
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows 10
Problem: einzige Konto gesperrt + Bitlocker aktiv (11)

Frage von Windows11 zum Thema Windows 10 ...

Exchange Server
Problem mit POP3-Abruf eines Exchange-2013-Postfachs

Frage von YotYot zum Thema Exchange Server ...

Multimedia & Zubehör
gelöst BENQ Beamer Fernbedingung Frequenz Problem (4)

Frage von xbast1x zum Thema Multimedia & Zubehör ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...