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
GELÖST

Die Antwort einer Batch abfragen

Frage Entwicklung Batch & Shell

Mitglied: Noobstar0815

Noobstar0815 (Level 1) - Jetzt verbinden

04.03.2013 um 10:35 Uhr, 1850 Aufrufe, 9 Kommentare

Ich möchte mir gerne eine Batch-Datei schreiben, habe allerdings nicht sehr viel Ahnung davon und habe auf diese Frage im Internet noch nichts gefunden. Die Batch-Datei soll mir helfen die Updates auf der Arbeit schneller auf allen Rechnern zu installieren. Dazu soll die Batch-Datei mich in der Konsole fragen, welche Programme ich updaten möchte. Entweder 1 für Alle oder 2 für bestimmte Updates. So weit so gut. Wenn ich allerdings nur bestimmte Updates installieren möchte soll ich gefragt werden welche Updates, z.B. 1 Java 2 Adobe Reader 3 Flash Player 4 Shockwave. Das Problem habe ich dann bei der Antwortabfrage, da ich es gerne hätte, dass ich einfach 134 eingeben kann und die Datei dann Java, Flash Player und Shockwave isntalliert. Die einzige Lösung die mir bis jetzt einfällt ist mit if, allerdings wäre es bei 6 Möglichkeiten viel zu lang. (1 12 123 1234 12345 2 23 234 etc...) Gibt es einen Scan-Befehl für Batch-Dateien? Zb "wenn 1 vorkommt dann Java, wenn 2 vorkommt dann Adobe Reader"

Leider kann ich die Frage nicht kürzer fassen und eine Antwort habe ich darauf auch noch nicht im Internet gefunden. Mein Ausbilder kann mir dabei leider auch nicht weiter helfen :D
Schon mal Danke an euch im Vorraus =)
Mitglied: 106543
04.03.2013 um 10:54 Uhr
Hallo @Noobstar0815,

nach 1 min googlen bin ich auf folgende Seite gestoßen
http://phpperformance.de/pruefen-ob-ein-string-eine-bestimmte-zeichenke ...
die dritte Variante müsste für dich passend sein.

Grüße
Exzellius
Bitte warten ..
Mitglied: Noobstar0815
04.03.2013 um 11:12 Uhr
Hmm, leider hilft mir das nur teilweise weiter, da ich nicht genau weis, wie ich es dann zu schreiben habe... :D
Kannst du mir evtl. sagen wie ich es schreiben muss?
Aktuell sieht es bei mir so aus :
set asw=0
set /p asw="Bitte alle zu aktualisierenden Programme angeben (Bsp.: 134):"
Wie schaffe ich es dann, dass sich if(preg_match("/134/",$string)) auf die Antwort bezieht? Funktioniert
if(preg_match("/134/",$asw))?
Bitte warten ..
Mitglied: Noobstar0815
04.03.2013 um 11:16 Uhr
Bzw: Funktioniert es, dass wenn ich dann zb 3 Programme auswähle und dann 134 eingebe, dass es dann auch alle 3 ausführt nacheinander mit wait/call, ohne dass ich dann für jede Möglichkeit ein if erstellen mus? weil das würde ziemlich lange dauern, gibt halt zuviele Möglichkeiten... 1 12 13 14 15 16 123 124 125 etc...
Bitte warten ..
Mitglied: 106543
04.03.2013, aktualisiert um 11:42 Uhr
Hi,

zuerst mal schau dir mal folgenden Link an und verwende bitte zukünftig "Code-Tags". Diese machen das lesen deines Quellcodes viel einfacher
http://www.administrator.de/faq/20

zu deinen Antworten:
du wirst nicht um mehrere If-Abfragen herumkommen, allerdings nur eine pro Programm, welches aktualisiert werden muss.
D.h.
01.
set asw=0 
02.
set /p asw="Bitte alle zu aktualisierenden Programme angeben (Bsp.: 134):" 
03.
if(preg_match("Hier dein String der gefunden werden soll(z.B. Java oder 1 wenn Java 1 ist)","Hier der String der überprüft werden soll)) "Hier den Befehl für das jeweilige Update einfügen"
Ich hoffe ich konnte dir helfen

Grüße
Exzellius

PS: Grußformeln sind nicht schwer anzuwenden ...
Bitte warten ..
Mitglied: Arano
04.03.2013 um 11:41 Uhr
Moin moin

Exzellius hat sich da wohl versehen !
Er hat eine PHP-Funktion vorgeschlagen, diese kannst du logischerweise nicht in einer Batch-Datei verwenden !
Das hätte dir allerdings auch auffallen können

Nun denn,
ich würde vorschlagen das du die Eingabe einfach Zeichenweise abarbeitest !
Das erlaubt auch die willkürliche Eingabe der Zahlen: 5143 162 41

Schau mal hier: tutorials.de Batch Zeichenweise das sollte dir weiterhelfen können.
Anstelle des echos in Zeile 8 schiebst du dann ein IF-ELSE-Konstrukt ein das für jedes Zeichen eine andere Funktion aufruft welche die gewünschte Aufgabe erfüllt.

Zumindest __theoretisch__ macht das einen guten Eindruck *g*


Viel Erfolg
~Arano
Bitte warten ..
Mitglied: 106543
04.03.2013 um 11:44 Uhr
Hi,

Ups *Kopf -> Tisch*
Danke für die Info @Arano :D
Dann vergiss meinen Lösungsvorschlag ganz schnell

Grüße
Exzellius
Bitte warten ..
Mitglied: Noobstar0815
04.03.2013 um 12:01 Uhr
Danke, allerdings bräuchti ich noch eine Erklärung für den Code :/
01.
@echo off 
02.
set "name=mein text" 
03.
set "num=-1" 
04.
:loop 
05.
set /a num=num+1 
06.
call set "name2=%%name:~%num%,1%%" 
07.
if defined name2 ( 
08.
echo(%name2% 
09.
goto :loop 
10.
) 
Kannst du mir den evtl erklären? *Lieb guck* Bin leider grade zu blöd um ihn zu verstehen
Bitte warten ..
Mitglied: colinardo
04.03.2013 um 12:31 Uhr
Das Script geht den Text der Variablen name Buchstabe für Buchstabe durch und speichert diesen in der Variablen name2 und gibt diesen auf der Console aus, solange bis es alle Buchstaben von name durchgegangen ist.

Grüße Uwe
Bitte warten ..
Mitglied: bastla
04.03.2013 um 15:27 Uhr
Hallo @ All!

Vielleicht noch ein weiterer Ansatz: Da es ja eigentlich darum geht, bei Vorhandensein einer bestimmten Wahl eine Installation zu starten, könnte auch
01.
echo %asw%|findstr "1">nul && echo Installation Java 
02.
echo %asw%|findstr "2">nul && echo Installation Adobe Reader 
03.
echo %asw%|findstr "3">nul && echo Installation Flash Player 
04.
echo %asw%|findstr "4">nul && echo Installation Shockwave
ein Weg sein ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...