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, 1873 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
DSL, VDSL

Telekom versendet automatische Kündigungen

(2)

Erfahrungsbericht von Voiper zum Thema DSL, VDSL ...

Ähnliche Inhalte
Batch & Shell
Batch bestimme Zeile einer vorherigen batch einfügen (3)

Frage von Frensche zum Thema Batch & Shell ...

Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Outlook & Mail
Automatische Antwort von Server an bestimmte Absender

Frage von SFischer-SCT zum Thema Outlook & Mail ...

Batch & Shell
Batch kehrt zur Sprungmarke zurück, obwohl es pingen soll? (2)

Frage von Brotkasten zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (21)

Frage von Mipronimo zum Thema Windows 7 ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (18)

Frage von Pandreas zum Thema Windows Userverwaltung ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...

Windows Server
gelöst Rechte als Admin vergeben - Zugriff verweigert (14)

Frage von Ghost108 zum Thema Windows Server ...