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

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, 3794 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
Wert in einer TXT Datei suchen (11)

Frage von nolle99 zum Thema Batch & Shell ...

Batch & Shell
Wert in Registry suchen und in Variable speichern (2)

Frage von J.Troll zum Thema Batch & Shell ...

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

Frage von Kriegstreiber zum Thema Batch & Shell ...

VB for Applications
gelöst Abfrage, ob Datei mit Variablem Wert existiert (12)

Frage von Anrion zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (57)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (23)

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

DSL, VDSL
VDSL Signal via PowerLine an Fritzbox - Möglich? (19)

Frage von Seichobob zum Thema DSL, VDSL ...