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

2 Variablen in einer Zeile in Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: meckatzermichel

meckatzermichel (Level 1) - Jetzt verbinden

14.08.2013 um 10:57 Uhr, 1508 Aufrufe, 4 Kommentare

hallo zusammen,
nachdem ich nun 3 jahre aus dem skripting raus bin und jetzt wieder back in it bin, steh ich leider schon bei einfachen dingen auf dem schlauch.

ich möchte aus einer datei mit hostnames mit wmic den angemeldeten user raus bringen.

for /F "delims=Name:." %%h in (hostname.txt) do (
wmic /node:%%h ComputerSystem GET UserName >> person.txt
)

die ausgabe von person.txt sieht dann so aus:
UserName
Domain\user001
UserName
Domain\user070
usw.

ich hätte aber gerne eine ausgabe wie folgt:
(ohne das UserName vom wmic befehl)

hostname1;user001
hostname5;user007
usw.

also quasi die variable %%h nochmals mit in die datei schreiben und die Zeile UserName eliminieren.

danke und gruss
michel
Mitglied: bastla
14.08.2013, aktualisiert um 11:08 Uhr
Hallo meckatzermichel!

Wenn Du die Ausgabe eines Befehles weiterverwenden willst, musst Du den auch nochmal in eine Schleife packen - also etwa:
01.
for /F "delims=Name:." %%h in (hostname.txt) do ( 
02.
    for /f "skip=1 delims=" %%u in ('wmic /node:%%h ComputerSystem GET UserName') do >>person.txt echo %%h;%%u 
03.
)
Mit "skip=1" überspringst Du die erste Zeile der Ausgabe (also "UserName").

Wenn Du die Domain nicht mit ausgeben willst (ungetestet):
01.
for /F "delims=Name:." %%h in (hostname.txt) do ( 
02.
    for /f "skip=1 tokens=1* delims=\" %%t in ('wmic /node:%%h ComputerSystem GET UserName') do >>person.txt echo %%h;%%u 
03.
)
Noch eine Anmerkung zu
"delims=Name:."
Da zeichenweise verarbeitet wird, erklärst Du damit "N", "a", "m", "e", ":" und "." zu Trennzeichen, die daher alle in %%h nicht enthalten sein werden (bzw genauer: ab deren erstem Auftreten der Rest der Zeile aus "hostname.txt" ignoriert wird) ...

Grüße
bastla
Bitte warten ..
Mitglied: meckatzermichel
14.08.2013 um 12:49 Uhr
danke bastla,

domain name krieg ich raus mit tokens=2*

das delims=Name:.
hab ich jetzt mit tokens=2 delims=:. gelöst.
das war die ausgabe vom nslookup durch einen find "name", der bringt ja:

Name: hostname01.domain
wie kann ich auch noch die 4 führenden leerzeichen wegen kriegen?

weitere frage:
wenn ich jetzt noch aus den usernames mittels net user xxx /domain den vollständigen name dazu will, muss ich vermutlich nochmal eine subschleife einfügen oder?

gruss
michel
Bitte warten ..
Mitglied: bastla
14.08.2013, aktualisiert um 13:19 Uhr
Hallo meckatzermichel!
wie kann ich auch noch die 4 führenden leerzeichen wegen kriegen?
Indem Du "delims=:. " verwendest?
wenn ich jetzt noch aus den usernames mittels net user xxx /domain den vollständigen name dazu will, muss ich vermutlich nochmal eine subschleife einfügen oder?
Yep.

BTW:
domain name krieg ich raus mit tokens=2*
Mein Vorschlag war die "Sicherheitsvariante" (und hier unnötig, da ein "\" im Usernamen ja nicht vorkommen kann) - bei Deiner Version ist dagegen der Stern entbehrlich (damit würdest Du alles - inklusive weiterer "\" - nach dem zweiten "\" zusammengefasst in eine weitere Variable bekommen) ...

Grüße
bastla
Bitte warten ..
Mitglied: meckatzermichel
14.08.2013 um 15:58 Uhr
Danke, du hast mir echt geholfen.
Ich musst es aber umdrehen, also mittel IP den wmic machen und dann erst den nslookup.
Ich poste mal das ganze (rohe) Script.

@echo off
del name_host.txt
for /F %%i in (ips.txt) do (
echo %%i
for /f "skip=1 tokens=2* delims=\ " %%u in ('wmic /node:%%i ComputerSystem GET UserName') do (
echo %%u
for /F "tokens=2 delims=;:.- " %%h in ('nslookup %%i^| find "Name"') do (
for /F "tokens=3,4,5 delims=,;:.- " %%v in ('net user %%u /domain^| find "Name"') do >> name_host.txt echo %%u;%%h;%%v,%%w
)
)
)

Danke und schönes langes WE
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
gelöst Erstellungsdatum vor jede Zeile einer Textdatei schreiben (5)

Frage von freakonaleash zum Thema Batch & Shell ...

Batch & Shell
Jede Zeile einer Textdatei in eigene Variable speichern (5)

Frage von tomaschku zum Thema Batch & Shell ...

Ubuntu
gelöst PHP-Version mit Bash in Variable schreiben? (11)

Frage von StefanKittel zum Thema Ubuntu ...

Neue Wissensbeiträge
Viren und Trojaner

Link: Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (11)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...