Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

Per Batch Wert in einer Datei suchen und Variable mit einem Wert aus 2. Spalte belegen

Frage Entwicklung Batch & Shell

Mitglied: blacksun

blacksun (Level 1) - Jetzt verbinden

20.07.2012, aktualisiert 14:18 Uhr, 3814 Aufrufe, 6 Kommentare

Hallo zusammen,

ich habe an zentraler Stelle auf einem Netzwerkshare eine Datei user.txt, die wie folgt aufgebaut ist:

Anton 192.168.33.181
Doris 192.168.33.182
Richi 192.168.33.183

Die Datei liegt zentral auf M:\Konfigfiles\


Des weiteren habe ich eine Username.

Wie suche per Batch am besten und setze den zweiten Wert (die zweite Spalte, also die ip-Adresse, in die Variable IP?

Vielen Dank schonmal.

Viele Grüße
Martin



Mitglied: Onitnarat
20.07.2012 um 15:21 Uhr
Hi,
überfliege mal dieses hier: http://www.grymoire.com/Unix/Sed.html

Ganz unten gibts die FAQs (http://sed.sourceforge.net/sedfaq.html) mit Downloadmöglichkeit.

Gruß
Marcus
Bitte warten ..
Mitglied: bastla
20.07.2012, aktualisiert um 15:50 Uhr
Hallo blacksun!

Etwa so:
01.
@echo off & setlocal 
02.
set "IP=" 
03.
for /f %%i in ('findstr /ibc:"%username% " "M:\Konfigfiles\user.txt"') do set "IP=%%i" 
04.
if not defined IP echo "Nicht gefunden!" & goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: blacksun
20.07.2012, aktualisiert um 16:22 Uhr
Hallo bastla,

vielen Dank schonmal für die Hilfe.
hmm, also die Batch belegt so lediglich die Variable IP mit dem Wert der Variable Username
IP soll aber die zweite Spalte sein, also die IP-Adresse, die dem Namen zugeordnet ist.

Geht das überhaupt?
Ansich würde ich sagen da muss noch was mit delims rein.
Bitte warten ..
Mitglied: bastla
20.07.2012, aktualisiert um 16:23 Uhr
Hallo blacksun!
Ansich würde ich sagen da muss noch was mit delims rein.
Fast - "tokens" hatte gefehlt:
for /f "tokens=2" %%i in ('findstr /ibc:"%username% " "M:\Konfigfiles\user.txt"') do set "IP=%%i"
oder (hier zwar nicht nötig, da die IP ja keine Leerzeichen enthält, aber schadet auch nicht):
for /f "tokens=1*" %%i in ('findstr /ibc:"%username% " "M:\Konfigfiles\user.txt"') do set "IP=%%j"
Die Angabe eines Delimiters ist nicht nötig, da defaultmäßig Leerzeichen und TAB als Trennzeichen gelten ...

Grüße
bastla
Bitte warten ..
Mitglied: blacksun
20.07.2012, aktualisiert um 17:06 Uhr
Zitat von bastla:
oder (hier zwar nicht nötig, da die IP ja keine Leerzeichen enthält, aber schadet auch nicht):
for /f "tokens=1*" %%i in ('findstr /ibc:"%username% " 
> "M:\Konfigfiles\user.txt"') do set "IP=%%j" 
> 
Die Angabe eines Delimiters ist nicht nötig, da defaultmäßig Leerzeichen und TAB als Trennzeichen gelten ...

juhu, es funktioniert.

ich trau mich ja gar nicht zu fragen, aber wie lange lebt die variable IP eigentlich?
nur so lange die batch läuft?

Ich frage, weil wenn ich nach dem Durchlauf
set
eingebe, dann gibt es die Variable nicht.

Für den Fall dass das mal nötig wäre (in einem anderen Anwendungsfall), kann man die Variable auch so setzen, dass sie Systemweit zur Verfügung steht und auch bleibt?
Bitte warten ..
Mitglied: bastla
20.07.2012 um 17:39 Uhr
Hallo blacksun!
Für den Fall dass das mal nötig wäre (in einem anderen Anwendungsfall), kann man die Variable auch so setzen, dass sie Systemweit zur Verfügung steht und auch bleibt?
Nicht wirklich gut (Stichwort "setx") - im Zweifelsfalls kann ja der nächste Batch die paar Zeilen wieder ausführen. Alternativ dazu könnte die Information natürlich auch einfach in einer Textdatei hinterlegt werden ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Wert aus Batch Schleife in Variable speichern (5)

Frage von anmelder zum Thema Batch & Shell ...

Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Datei die Zahl jede Zell in einer Spalte um 10 verkleinern (12)

Frage von ha5257 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (21)

Frage von McLion zum Thema Router & Routing ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (20)

Frage von jensgebken zum Thema Windows Server ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
gelöst Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (14)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...