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, 6070 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Batch Textdatei Spaltenweise auslesen (7)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...