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

Batch Programmieren - Daten auslesen

Frage Entwicklung Batch & Shell

Mitglied: MrVain

MrVain (Level 1) - Jetzt verbinden

07.04.2008, aktualisiert 08.04.2008, 6076 Aufrufe, 6 Kommentare

Hallo

ich möchte eine Batch Datei schreiben, in der ich eine Eingabe mache, z.B. PC01

und nun habe ich eine txt Datei mit folgendem Inhalt:

PC01 aa-aa-aa-aa-aa-aa 192.168.1.1
PC02 bb-bb-bb-bb-bb-bb 192.168.1.2


Ist es möglich, dass ich die Eingabe in der BAT Datei mit dieser txt Datei abgleiche, sodass das Programm zum PC01 geht und zusätzlich die anderen Werte (Mac Adresse + IP Adresse) einer Variable zugeordnet wird.

// Es geht um ein einfaches Wake On Lan Tool ( wake.exe )

mfg
MrVain
Mitglied: Biber
07.04.2008 um 16:55 Uhr
Moin MrVain,

willkommen im Forum.
ich möchte eine Batch Datei schreiben, in der ich eine Eingabe mache, z.B. PC01

Welchen Strategie hast Du denn gewählt, um von Status A ("ich möchte eine Batchdatei schreiben") nach Status B ("ich habe fertig") zu gelangen?

Falls Du Dich mit dem Thema soweit auseinandersetzen willst, dass Du zumindest eine zweite Batchdatei allein hinbekommst, wäre meine Empfehlung:

Wechsele zum CMD-Prompt, gib dort nacheinander ein
01.
Set /? 
02.
For /?
...und lese Dir die Erläuterungen zu den Teilbefehlen "Set /P" und "For /F" durch.
Zu beiden findest Du auch (ohne Übertreibung) Hunderte von Beispielschnipseln hier im Bereich Batch & Shell.

Versuche bitte zuerst, eine lauffähige Skizze dieses Batchablaufs zu erstellen und hier zu posten.
Sollte es dann klemmen, unterstützen wir gern.

Grüße
Biber
[Edit um 20.15] Na, jezz' hab ich ihn verschreckt...sorry.
Also kleine Skizze / Test am CMD-Prompt:
01.
>Set /P "pc=Bitte Rechnernamen eingeben: " 
02.
>for /f "tokens=1-3" %i in (Rechnerliste.txt) do @if /i "%pc%"=="%i" echo Set "PC=%i Set" "MAC=%j" Set "IP=%k"
[/Edit]
Bitte warten ..
Mitglied: MrVain
07.04.2008 um 23:13 Uhr
Hallo und vielen Dank für deine Antwort.

Ich habe mir das auch alles mal etwas genauer angeguckt.

Aber wenn ich es so mache, wie du schreibst, kommt folgender Fehler:


"pci" echjo SET "PC" ist syntaktisch an dieser Stelle nicht verarbeitbar


Woran kann das liegen?
Bitte warten ..
Mitglied: Biber
08.04.2008 um 09:55 Uhr
Moin MrVain,

vom CMD-Prompt aus solte es wie gepostet funktionieren, wenn die Datei "Rechnerliste.txt" so aussieht wie von Dir oben skizziert.

Nochmal zum Testen und nachturnen am CM-Prompt:
01.
echo PC01 aa-aa-aa-aa-aa-aa 192.168.1.1>Rechnerliste.txt 
02.
 
03.
>echo PC02 bb-bb-bb-bb-bb-bb 192.168.1.2>>Rechnerliste.txt 
04.
>set PC=PC02 
05.
>for /f "tokens=1-3" %i in (Rechnerliste.txt) do @if /i "%pc%"=="%i" echo Set "PC=%i" Set "MAC=%j" Set "IP=%k" 
06.
Set "PC=PC02" Set "MAC=bb-bb-bb-bb-bb-bb" Set "IP=192.168.1.2"
In einem Batch müssten alle %-Zeichen verdoppelt werden, also ungefähr so:
01.
.... 
02.
for /f "tokens=1-3" %%i in (Rechnerliste.txt) do if /i "%%pc%"=="%%i" ( 
03.
                       echo Set "PC=%%i"  
04.
                       echo Set "MAC=%%j"  
05.
                       echo Set "IP=%%k" 
06.
)
Wenn auch dieser Vorab-Test das Gewünschte zeigt, dann die echo's entfernen.

Grüße
Biber
Bitte warten ..
Mitglied: MrVain
08.04.2008 um 10:52 Uhr
Hallo und vielen Dank für deine Antwort.

Die Liste sieht folgendermaßen aus:

PC01 aa-aa-aa 91.0.0.1
PC02 bb-bb-bb 91.0.0.2
PC03 cc-cc-cc 91.0.0.3

und die test.bat Datei so:

@echo off

Set /P "pc=Bitte Rechnernamen eingeben: "
for /f "tokens=1-3" %%i in (Rechnerliste.txt) do if /i "%%pc%"=="%%i" (
echo Set "PC=%%i"
echo Set "MAC=%%j"
echo Set "IP=%%k"
)

echo %PC% und %MAC% und %IP%

pause


Es kommt wieder folgende Ausgabe:

"(" ist syntaktisch an dieser Stelle nicht verarbeitbar - auch wenn ich die echo lösche...
Bitte warten ..
Mitglied: Biber
08.04.2008 um 11:02 Uhr
Moin MrVain,

ich habe es zu gut gemeint mit dem %-Zeichen verdoppeln:
Streiche: "%%pc%"=="%%i"
Setze: "%pc%"=="%%i"

Variablen werden auch im Batch (wie am CMD-Prompt) nur durch einfache %-Zeichen eingeschlossen.

Probierst Du noch mal bitte?

Grüße
Biber
Bitte warten ..
Mitglied: MrVain
08.04.2008 um 11:28 Uhr
Vielen Dank !!!

Jetzt funktioniert es


Gruß
MrVain
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable per Batch auslesen und in Registry schreiben (1)

Frage von Zendara zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: CPU-Auslastung eines Prozesses auslesen und als Variable definieren (3)

Frage von tralveller zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (44)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

Netzwerke
VPN-Server einrichten PPTPD-Einrichtung gescheitert (15)

Frage von MIlexx zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

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