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 Erstes Wort in einer Datei auslesen und verarbeiten

Mitglied: kermix

kermix (Level 1) - Jetzt verbinden

25.10.2005, aktualisiert 27.10.2005, 8918 Aufrufe, 7 Kommentare

Hallo alle,

Ich habe folgendes Problem:

Ich möchte eine Batch-Datei schreiben die alle angeschlossenen Drucker, die ich mittels dem Befehl "net share" in eine Textdatei schreibe, auslesen kann und die dann benützen um ein neues Files zu schreiben.

Hier ein Auszug aus der Datei mit den Druckern die ausgelesen werden soll:
+------------------------------------+
CHBAP201 10.145.58.12 Spooled ZHBAP201
CHBAP202 10.145.58.102 Spooled ZHBAP202
CHBAP203 10.145.58.108 Spooled ZHBAP203
+--------------------------------------------------------------------+
es soll jeweils nur das erste Wort also CHBAP20* in eine Variable ausgelesen werden die dann weiter verarbeitet werden kann.

Hab mal folgendes vergeblich versucht: "FOR %%x in (Auszug.txt) do IF "%%x"=="chbap*" goto OK"


Wenn mir jemand helfen kann bin ich überaus dankbar!
Mitglied: Biber
25.10.2005 um 15:50 Uhr
Moin kermix,

warst schon nah dran...
FOR %%x in (Auszug.txt) do IF /I "%%x"=="chbap" echo %%i >>AlleDrucker.txt
[Edit] Bullshit... hab gar nicht auf die erste Hälfte der Zeile geachtet...

01.
::~~~~~~~~Batchschnipsel~~~~ 
02.
... 
03.
REM so....: FOR /F %%x in ('type Auszug.txt') do call :chkCHBAP %%x 
04.
REM oder so..: 
05.
FOR /F %%x in (Auszug.txt) do call :chkCHBAP %%x 
06.
 
07.
goto :eof 
08.
 
09.
:chkCHBAP 
10.
set "PrName=%1" 
11.
if /I "%PrName:~0,5%"=="CHBAP" call :CHBAPStuff %1 
12.
goto :eof 
13.
 
14.
:CHBAPStuff 
15.
echo CHBAP-Drucker gefunden: %1 
16.
::....whatever ....(CHBAP-Verarbeitung) 
17.
goto :eof 
18.
::~~~~~~~~Batchschnipsel~~~~
Ist natürlich eine FOR /F- Schleife.... und mit "*" kann ich Strings unterm CMD-Prompt nicht verarbeiten. Da muss ich diese kryptischen Substring-Funktionen nehmen ( %PrName:~0,5% ...die ersten 5 Zeichen des Druckernamens)
[/Edit]

oder was immer Du damit machen willst.
Entscheidend war der "/i"-Parameter der IF-Anweisung.
Und ich würde kein "goto OK", sondern ein "call :OK" machen.

HTH
Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: kermix
25.10.2005 um 16:22 Uhr
danke für die rasche Antwort. Leider funktioniert es immer noch nicht. Möglicherweise habe ich etwas falsch verstanden. Mittels "for" lese ich ja Zeilenweise die Datei "Auszug.txt" in die Variable "%%x". Mittels "do" Filtere ich dann die Variable "%%x". Dann gebe ich die Viarable (gefiltert) mittels %%i wieder aus. Aber weshalb %%i? %%x funkt. auch nicht. Die Variable %%i geht immer leer aus.

Grüsse
Bitte warten ..
Mitglied: Biber
25.10.2005 um 16:48 Uhr
@kermix

Nachtrag:
Einfacher ist alles, wenn Du gar keine Auszug.txt schreibst, sondern dort, wo oben im Beispiel ...('type Auszug.txt') steht, statt dessen Dein "Net share.." ..gefiltert auf alle CHBAP-Zeilen machst.

In etwa also:
FOR /F %%x in ('net share... ^|find "CHBAP" ') do Call :CHBAPStuff %%x

Biber
Bitte warten ..
Mitglied: kermix
26.10.2005 um 08:48 Uhr
Suuper es funktioniert!

Vielen Dank für die Hilfe ... dachte mir es wird schwieriger als ich am Anfang dachte!
Nur noch zum Verständnis:
Was genau macht diese Zeile: "%PrName:~0,5%"=="CHBAP" ??

Das ~0.5% versteh ich nicht.

Nochmals vielen Dank für die Hilfe!
Bitte warten ..
Mitglied: Biber
26.10.2005 um 13:48 Uhr
Moin, kermix

ich hatte es oben schon kurz gestreift:
>Da muss ich diese kryptischen Substring-Funktionen nehmen ( %PrName:~0,5% ...die ersten 5 Zeichen des Druckernamens)

Es gibt bei den etwas neueren Windowsversion immerhin ein paar Elementarfunktionen auch für den CMD-Interpreter (oder die "Eingabeaufforderung", wie das im Menü heißt).
Eine dieser Funktionalitäten ist, dass M$ jetzt ein bisschen unterstützt, Umgebungsvariablen nicht nur als Ganzes zu benutzen, sondern in ihnen auch mit Teilstrings zu arbeiten oder in ihnen Zeichen zu ersetzen.
Die Syntax davon ist allerdings auf den Blick etwas strange, aber leider folgerichtig.
Umgebungsvariablen werden vom CMD-Interpreter erkannt, wenn sie in Prozentzeichen eingeschlossen sind. Ich wechsele mal auf die Eingabeaufforderung, da ist es einfacher.

>echo %date%
Mi 26.10.2005 --------------- so oder so ähnlich sieht die Rückgabe aus
wenn ich von der Variablen %date% nur einen Teilstring haben will, muss ich innerhalb der Prozentzeichen noch eingeben
- ein ":~" (heißt nur "jetzt Substringfunktion anwenden")
- und angeben, von welchem Zeichen (Start des Zählens bei 0) und wie viele Zeichen.

>echo Wochentag ist %date:~0,2% ------------ die ersten zwei Zeichen von %Date%
Wochentag ist Mi

>set "PrName=CHBAP123"
>echo %PrName:~0,5% ------------die ersten fünf Zeichen von %PrName%
CHBAP

HTH
Biber
Bitte warten ..
Mitglied: kermix
26.10.2005 um 16:41 Uhr
Danke nochmal! Wusste gar nicht was man mit einem Batch Script alles machen kann!! Sonst mache ich solche Sachen meist mittels Perl wo sowas ja keine grosse Sache ist.

Grüsse
kermix.
Bitte warten ..
Mitglied: Biber
27.10.2005 um 00:07 Uhr
Danke Dir auch, kermix,
für die Rückmeldung.
Kannst ja gerne noch Dein Script posten - vielleicht kann ich noch ein, zwei Tuning-Tipps abgeben. Ich hole mir dann umgekehrt Rat und Hilfe bei Perl - da hab ich nur Noob-Status.
Aber damit könnte ich bestimmt wunderbare Oneliner zusammenschroten implementieren.


Grüße aus Bremen
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien verarbeiten mit PowerShell
gelöst Frage von Forseti2003Batch & Shell3 Kommentare

Hallo in die Runde, ich bastel gerade hier an einem PowerShell-Skript, die Anforderungen sind überschaubar: 1) Lies aus dem ...

Batch & Shell

Alle Dateien aus einem Ordner verarbeiten

gelöst Frage von neo243Batch & Shell2 Kommentare

Hallo Leute, ich wollte aus einem Ordner alle dateien per ffmpeg Encoden bekomme dann aber leider folgenden Fehler: "%~a" ...

Batch & Shell

CMD BAT Dateien verarbeiten

gelöst Frage von ITSharkBatch & Shell7 Kommentare

Hallo zusammen, folgendes Problem bzw. folgende Herausforderung habe ich. Ich habe ca. 2000 TXT Dateien welche ich zusammenführen will. ...

Batch & Shell

Powershell: Das erste Wort einer txt-Datei in zwei weiteren txt-Dateien an erster Stelle kopieren

gelöst Frage von Frank2017Batch & Shell6 Kommentare

Hallo! Versuche mit Powershell das erste Wort aus einer txt-Datei im 1. Ordner in zwei weiteren txt-Dateien im 2.Ordner ...

Neue Wissensbeiträge
Windows Server
Erneutes Release von WS2019 und Win10 v1809
Tipp von IT-Pro vor 52 MinutenWindows Server

Hi, nachdem der Windows Server 2019 und Windows 10 in der Version 1809 aufgrund von verschwinden von Dateien nach ...

CPU, RAM, Mainboards
Spectre Update Tool für ältere PCs
Information von sabines vor 3 StundenCPU, RAM, Mainboards2 Kommentare

Mit Hilfe eines Tools wird der betreffende PC permanent von einem USB Stick gestartet, der ein passendes Microcode Update ...

Windows 10
Windows 10 Oktober 2018 Update: Es ist wieder da
Tipp von Bowsette vor 12 StundenWindows 101 Kommentar

Ein neuer Versuch von Microsoft das Windows 10 Oktober 2018 Update, auch bekannt als 1809, an den Mann zu ...

Windows Server

Windows Server 2016: Achtung - ab heute gibt es wieder Express Updates

Information von kgborn vor 22 StundenWindows Server1 Kommentar

Kurze Info für Administratoren, die Windows Server 2016 per WSUS/SCCM mit Updates betanken. Ab heute gibt es für Windows ...

Heiß diskutierte Inhalte
Microsoft Office
Lizenzierung
Frage von opc123Microsoft Office29 Kommentare

Hallo, eventuell ein oft bekanntes Thema. Office 365 ist mir zu teuer, da wir als Bildungsträger andere Konditionen beim ...

Windows 10
Windows 10 mit CRITICAL PROCESS DIED
Frage von liquidbaseWindows 1028 Kommentare

Das aktuelle Problem was ich habe steht bereits im Threadtitel. Etwas mehr zum Hintergrund soll nun folgen. Problemkind ist ...

Windows Server
Windows Server 2016 Lizenzierung - 7 Hyper V VMs
Frage von staybbWindows Server18 Kommentare

Hallo zusammen, wir haben zwei HP Server gekauft mit jeweils pro Server 2 CPUs à 10 Cores. Also insgesamt ...

Windows Server
WIE ?? Server 2016 2x RDP welche das gleiche sehen können wie VNC
Frage von ChrisXYWindows Server12 Kommentare

Hallo, aktuell habe ich Windows10 welches wohl zu Server2016 wechseln wird. Aktuell habe ich eine Video Überwachungssoftware welche per ...