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, 3771 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 ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
Wert in einer TXT Datei suchen (11)

Frage von nolle99 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (22)

Frage von Winuser zum Thema Hyper-V ...

Apache Server
Lets Encrypt SSL mit Apache2 (19)

Frage von banane31 zum Thema Apache Server ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...