Top-Themen

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 Problem bzw. Frage zum Abfangen einer Ausgabe mit FOR

Mitglied: miniversum

miniversum (Level 3) - Jetzt verbinden

07.03.2008, aktualisiert 17:16 Uhr, 4450 Aufrufe, 2 Kommentare

Hallo
Ich hab hier eine Frage die mcih grade beschäftigt.

Normalerweise kann man ja, wenn man die Ausgabe eines Befehls in Variabeln speichern will entweder diese Ausgabe in eine datei schreibven lassen und diese Datei auslesen oder direkt, also ohne temponäre Datei, die Ausgabe des Befehls abfangen.
Bsp1:
dir /b>Datei.txt
FOR /F "tokens=1 delims=" %%i in ('type Datei.txt') do set "LetzteDatei=%%i"
echo [LetzteDatei]
Bsp2:
FOR /F "tokens=1 delims=" %%i in ('dir /b') do set "LetzteDatei=%%i"
echo [LetzteDatei]
Bsp1 und Bsp2 würden das gleiche Ergebnis bringen, nur das Bsp2 ohne temponäre Datei auskommt.

Scheinbar funktioniert dies aber nicht immer. Anders kann ich mir jedenfalls folgendes Verhalten nicht erklären.
Batch1:
@echo off & setlocal
FOR /F "skip=1 tokens=24,26,47,48 delims= " %%i in ('wmic os') do set "InstallDate=%%i" & set "LastBootUpTime=%%j" & set "RegisteredUser=%%k" & set "SerialNumber=%%l"
echo [%InstallDate%] [%LastBootUpTime%] [%RegisteredUser%] [%SerialNumber%]
Funktioniert nicht! Die ausgelesenen Werte sind falsch und blödsinn.

Batch2:
@echo off & setlocal
wmic os get InstallDate,LastBootUpTime,RegisteredUser,SerialNumber>Datei.txt
FOR /F "skip=1 tokens=1,2,3,4 delims= " %%i in ('type Datei.txt') do set "InstallDate=%%i" & set "LastBootUpTime=%%j" & set "RegisteredUser=%%k" & set "SerialNumber=%%l"
del Datei.txt
echo [%InstallDate%] [%LastBootUpTime%] [%RegisteredUser%] [%SerialNumber%]
Funktioniert! Ergebniss ist auch das gewünschte.

Batch3:
@echo off & setlocal
FOR /F "skip=1 tokens=1,2,3,4 delims= " %%i in ('wmic os get InstallDate,LastBootUpTime,RegisteredUser,SerialNumber') do set "InstallDate=%%i" & set "LastBootUpTime=%%j" & set "RegisteredUser=%%k" & set "SerialNumber=%%l"
echo [%InstallDate%] [%LastBootUpTime%] [%RegisteredUser%] [%SerialNumber%]
Funktioniert nicht! Aber warum? Kann mir jemand erklären warum es so nciht funktioniert?

miniversum
Mitglied: Biber
07.03.2008 um 16:50 Uhr
Moin miniversum,

in der dritten Abfrage machen die Kommas in der WMIC-Abfrage die Probleme.

Wenn Du entweder jedes Komma mit einem "^" maskierst ...
- ODER -
aber die in einfachen Anführungszeichen stehende WMIC-Abfrage zusätzlich in doppelte Anfü-zeichen packst, dann geht es.

01.
FOR /F "skip=1 tokens=1-3,*" %i in ('"wmic os get InstallDate,LastBootUpTime,SerialNumber,RegisteredUser"') do @echo [%i] [%j] [%k] [%l]
02.
-oder-
03.
FOR /F "skip=1 tokens=1-3,*" %i in ('wmic os get InstallDate^,LastBootUpTime^,SerialNumber^,RegisteredUser') do @echo [%i] [%j] [%k] [%l]
Die erste Abfrage habe ich mir nicht weiter angeschaut, aber vermutlich, nein sicher macht die Anzahl der Paramter Probleme.
Wie hatten das schonmal in einem beitrag hier im Forum bei einer CSV-Datei mit x Werten.
Dabei stellt sich dann raus, dass die Tokens in einer For-Anweisung nur von 1 bis (??)..bis 31 oder so gültig sind.

Quicktest:
01.
(=16:47:02  D:\temp=)
02.
>for /f "tokens=30,31" %a in ("1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6") do @echo %a %b
03.
u v
04.

05.
(=16:47:08  D:\temp=)
06.
>for /f "tokens=30,32" %a in ("1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6") do @echo %a %b
07.
u %b
Der untere Fall offenbart das Elend... Token 31 kann noch, token 32 nicht mehr direkt angesprochen werden.

Dazu musst zwei ineinander geschraubte FOR-Anweisungen machen mit "tokens=1-30,*" und den Rest "*" in einer nachgeschalteten FOR /F-Anweisung abfackeln.

Grüße und schönes Wochenende
Biber
Bitte warten ..
Mitglied: miniversum
07.03.2008 um 17:16 Uhr
Danke.
Das mit den zu vielen token dachte ich mir. Aber das mit den Kommas war mir neu.
Dann ist das ja erledigt.
Bitte warten ..
Ähnliche Inhalte
Windows Server

Probl. b. Programminst. nach Netzlaufwerksbuchst.: invalid directory name specified or the removable media is not properly inserted

gelöst Frage von departure69Windows Server4 Kommentare

Hallo. Situation: - SBS 2008 AD-Domäne - versch. Memberserver, teils phys. teils virtuell, alle im selben Netz - Clients ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 10 StundenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 13 StundenSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 1 TagInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 2 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Glasfaserkabel verlegen und Anschlüsse setzen
Frage von LLL0rdLAN, WAN, Wireless21 Kommentare

Hallo Leute, ich muss demnächst ein Netzwerkkabel auf einer Länge von ca. 70 Metern verlegen. Das Netzwerkkabel soll dabei ...

Windows Server
Mac Rechner im Windows Netzwerk - was jetzt?
gelöst Frage von Kopfg3ldWindows Server18 Kommentare

Hallo zusammen, ich habe folgende Herausforderungen. Aber erst mal was kurz zum Netzwerk - Windows Server (ältester ist ein ...

Microsoft Office
Sharepoint 2016 mag keine Umlaute in .docx-Titeln
gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Nutzt hier jemand Sharepoint? Könnt Ihr, unabhängig von der Sharepointversion, bitte einen Test machen? Ladet ein .docx ...

Basic
VBS soll alle Ordner auswählen, die im Startmenu angezeigt werden
Frage von Senseless-CreatureBasic12 Kommentare

Guten Morgen - gibt es eine Möglichkeit, per VBS das Startmenu in Win10 zu modifizieren? Ich beherrsche VBS mittlerweile ...