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

Mehrere Wörter, Zeichen aus einer Textdatei löschen

Frage Entwicklung Batch & Shell

Mitglied: Seelbreaker

Seelbreaker (Level 1) - Jetzt verbinden

29.11.2011 um 11:26 Uhr, 4739 Aufrufe, 5 Kommentare

Moin, da dies in einer WINPE Umgebung umgesetzt werden muss, bleiben mir leider nur die Batch, zusätzliche Programme die in der Batch gestartet werden könne, kann ich aber beim Start des PE von einem Share nachladen

Ich habe folgende Textdatei mit folgendem Inhalt:

01.
SYSTEM_PROD_DATA.SysInfoSerialNum=06PCZ16 
02.
SYSTEM_PROD_DATA.SysInfoUUID=C911A40C0BEA11E1A21E5CF3FC7AC074 
03.
iSCSI.MacAddress.1=00-10-18-B7-7E-28 
04.
iSCSI.MacAddress.2=00-10-18-B7-7E-2A 
05.
iSCSI.MacAddress.3=00-10-18-B7-7E-2C 
06.
iSCSI.MacAddress.4=00-10-18-B7-7E-2E 
07.
iSCSI.MacAddress.5=5C-F3-FC-7A-C0-74 
08.
iSCSI.MacAddress.6=5C-F3-FC-7A-C0-76
Ich habe bisher immer nur das Löschen von Zeilen gefunden, was ich selber schon angewendet habe, da bei jeder Ausgabe dieser Informationen noch 3 Zeilen unnötiger Mist drinstand.

Jetzt wäre es natürlich am besten, wenn ich die Wörter vor den jeweiligen Informatione (SN, UUID und MAC-Adresse) löschen könnte. Habe gestern schon 2 Stunden lang rumprobiert mit for schleifen, find, findstr (Bei type in Verbindung mit einer Pipe zu find, hieß es nur %% kann syntaktisch nicht verwendet werden).

Bin aber zu nix gekommen, sodass ich aufgehört habe. Deshalb wende ich mich an euch liebe Community

Gibt es irgendeine Möglichkeit die unnötigen Infos (Der ganze Text vor der SN, UUID und die "-" in den MAC-Adressen) automatisiert löschen zu lassen? Das muss aus einer Batch heraus funktionieren, da ich diese Infos bei der Einrichtung von mehreren Blade-Servern erhalte und ich froh bin, dass ich diese Infos schon so "sauber" bekomme.

Gruß
Seelbreaker
Mitglied: Skyemugen
29.11.2011 um 11:54 Uhr
Aloha,

naja, wenn du mit
01.
for /f "usebackq tokens=2-7 delims==-" %%s in ("testdatei.txt") do >>"neue_testdatei.txt" echo %%s%%t%%u%%v%%w%%x
arbeitest, sollte das Ergebnis doch so rauskommen, wie du es möchtest, oder?

greetz André

POC:
E:\Skripte>for /F "usebackq tokens=2-7 delims==-" %s in ("testdatei.txt") do ech 
o %s%t%u%v%w%x 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo 06PCZ16 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo C911A40C0BEA11E1A21E5CF3FC7AC074 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo 001018B77E28 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo 001018B77E2A 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo 001018B77E2C 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo 001018B77E2E 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo 5CF3FC7AC074 1>>"neue_testdatei.txt" 
 
E:\Skripte>echo 5CF3FC7AC076 1>>"neue_testdatei.txt" 
 
E:\Skripte>type "neue_testdatei.txt" 
06PCZ16 
C911A40C0BEA11E1A21E5CF3FC7AC074 
001018B77E28 
001018B77E2A 
001018B77E2C 
001018B77E2E 
5CF3FC7AC074 
5CF3FC7AC076 
 
E:\Skripte>pause 
Drücken Sie eine beliebige Taste . . .
@Friemler, was ein Aufwand
Bitte warten ..
Mitglied: Friemler
29.11.2011 um 12:07 Uhr
Hallo Seelbreaker,

teste mal folgendes:
01.
@echo off & setlocal 
02.
 
03.
set "InFile=D:\test.txt" 
04.
set "OutFile=D:\test_out.txt" 
05.
 
06.
 
07.
(for /f "tokens=1,* delims=:" %%a in ('findstr /n "$" "%InFile%"') do ( 
08.
   for /f "tokens=1,* delims==" %%c in ("%%b") do ( 
09.
     if %%a gtr 2 ( 
10.
       for /f "tokens=1-6 delims=-" %%e in ("%%d") do ( 
11.
         echo\%%e%%f%%g%%h%%i%%j 
12.
13.
     ) else ( 
14.
       echo\%%d 
15.
16.
17.
18.
) > "%OutFile%"
Die Zeilen 3 und 4 musst du anpassen. Das Script extrahiert die reinen Informationen aus der Eingabedatei, von deinen Beispieldaten würde also nur folgendes übrigbleiben:
06PCZ16 
C911A40C0BEA11E1A21E5CF3FC7AC074 
001018B77E28 
001018B77E2A 
001018B77E2C 
001018B77E2E 
5CF3FC7AC074 
5CF3FC7AC076
Gruß
Friemler


[EDIT]
Zitat von Skyemugen:
@Friemler, was ein Aufwand

Oder Du nimmst die Kurz-Und-Schmerzlos-Lösung von Skyemugen.
[/EDIT]
Bitte warten ..
Mitglied: Seelbreaker
29.11.2011 um 12:35 Uhr
Zitat von Skyemugen:
Aloha,

naja, wenn du mit
01.
for /f "usebackq tokens=2-7 delims==-" %%s in ("testdatei.txt") do 
02.
> >>"neue_testdatei.txt" echo %%s%%t%%u%%v%%w%%x
arbeitest, sollte das Ergebnis doch so rauskommen, wie du es möchtest, oder?

greetz André


Sowas "kurzes" wäre super, wenn nicht das Problem mit der syntaktischen Stelle wäre:
01.
C:\>for /f "usebackq tokens=2-7 delims==-" %%s in ("testdatei.txt") do >>"neue_testdatei.txt" echo %%s%%t%%u%%v%%w%%x 
02.
"%%s" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
Das bekomme ich wenn ich es aus der CMD ausführe.

Wenn ich es aber als test.cmd speicher und ausführe, dann funktionierts... wieso den das? So hätte ich mir gestern vielleicht 2 Stunden rumprobierei sparen können

Vielen Dank dennoch! Ich teste das gleich mal mit einem Blade und melde mich ob es so für mich erfolgreich ist!
Bitte warten ..
Mitglied: Skyemugen
29.11.2011 um 13:12 Uhr
Aloha,

aus dem cmd geht auch nicht mit so viel Alkohol

Schau dir mal den Inhalt der Batch an und die Ausgabe (mein POC) des cmd - was fällt dir bei den Laufvariablen auf

greetz André
Bitte warten ..
Mitglied: Seelbreaker
29.11.2011 um 14:41 Uhr
Moin,

Habe es vorhin in nem anderen Thread gesehen

%% in Batch und % in cmd.

Wenn ich das aber nicht irgendwie gesehen hätte, wärs mir nie aufgefallen. Dafür bleibt mir das Wissen jetzt erstmal ne zeitlang ;)

Vielen Dank!

PS: Habe übrigens deine Version genommen, weils kürzer war ;)

Trotzdem auch ein danke an Friemler, hatte schon befürchtungen, dass ich von allen Seiten in der Luft zerrissen werde

Gruß
Seel
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

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

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...