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, 6086 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: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst Daten mit Mediainfo auslesen (17)

Frage von Dr.Byte zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (13)

Frage von takvorian zum Thema Windows Server ...