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

Durch Leerzeichen getrennte Wörter Filtern

Frage Entwicklung Batch & Shell

Mitglied: Mario.Steinberg

Mario.Steinberg (Level 1) - Jetzt verbinden

28.05.2010 um 11:00 Uhr, 2616 Aufrufe, 5 Kommentare

Hallo,

ich hoffe mir kann jemand weiterhelfen. Ich habe mit den Infos aus dem Forum schon mal etwas rumprobiert aber noch zu keiner guten Lösung gekommen.

Ich habe eine Datei mit folgendem Aufbau

01.
               848      820 harry        Src\Forms\obj\Release\res_1.resources 
02.
               848      820 harry        Src\Forms\obj\Release\res_2.resources 
03.
M              848      822 stefan       Src\Forms\obj\Release\res_3.cache 
04.
               848      820 harry        Src\Forms\obj\Release\res_4.resources 
05.
               848      820 harry        Src\Forms\obj\Release\res_5.resources
wobei das M tatsächlich auch da ist.

Nun würde ich die Informationen gerne in eine neue Datei schreiben, die dann in etwa so aussehen soll.

01.
   Repository revision:	820 	Src\Forms\obj\Release\res_1.resources 
02.
   Repository revision:	820 	Src\Forms\obj\Release\res_2.resources 
03.
   Repository revision:	822  	Src\Forms\obj\Release\res_3.cache 
04.
   Repository revision:	820 	Src\Forms\obj\Release\res_4.resources 
05.
   Repository revision:	820 	Src\Forms\obj\Release\res_5.resources
Weiß jemand Rat?

Danke und Gruß,
Mario
Mitglied: TsukiSan
28.05.2010 um 11:14 Uhr
Hallo Mario,

gesetz dem Fall, dein Dateiaufbau ist immer so und es gibt nur so ein vereinsamtes "M", dann
könnte dir dieses Schnipsel in VBS eventuell weiterhelfen:
01.
Set FSO = CreateObject("Scripting.FileSystemObject") 
02.
Set MeineDatei = FSO.OpenTextFile("D:\3\Test.txt", 1) 
03.
MeineDateiNeu = MeineDatei.ReadAll 
04.
MeineDateiNeu = Replace (MeineDateiNeu, "M              848" , "               Repository revision:") 
05.
MeineDateiNeu = Replace (MeineDateiNeu, "848" , "Repository revision:") 
06.
MeineDatei.Close 
07.
Set MeineDatei = FSO.CreateTextFile("D:\3\Test1.txt", True) 
08.
With MeineDatei 
09.
	.Write (MeineDateiNeu) 
10.
	.Close 
11.
End With
Gruss
Tsuki
[Edit]
Bitte bei dem Schnipsel noch den Pfad und Dateinamen anpassen
[/Edit]
Bitte warten ..
Mitglied: LotPings
28.05.2010 um 11:17 Uhr
Hallo Mario,

die genauen Offset,Länge Werte und Anzahl Leerzeichen musst du dir selber raussuchen.

01.
@Echo off&Setlocal 
02.
Set InFile=D:\Test\test1.txt 
03.
Set OutFile=D:\test\Test2.txt 
04.
For /F "delims=" %%A in (%InFile%) do Set "Line=%%A" & Call :ProcLine 
05.
Goto :Eof 
06.
:ProcLine 
07.
>> %OutFile% Echo.   Reposi... %Line:~25,3%  %Line:~41%
Aber du kannst ja zählen/ablesen
         1         2         3         4         5         6         7         8       
12345678901234567890123456789012345678901234567890123456789012345678901234567890 
               848      820 harry        Src\Forms\obj\Release\res_1.resources 
               848      820 harry        Src\Forms\obj\Release\res_2.resources 
M              848      822 stefan       Src\Forms\obj\Release\res_3.cache 
               848      820 harry        Src\Forms\obj\Release\res_4.resources 
               848      820 harry        Src\Forms\obj\Release\res_5.resources 
                
         1         2         3         4         5         6         7         8       
12345678901234567890123456789012345678901234567890123456789012345678901234567890 
   Repository revision:	820 	Src\Forms\obj\Release\res_1.resources 
   Repository revision:	820 	Src\Forms\obj\Release\res_2.resources 
   Repository revision:	822  	Src\Forms\obj\Release\res_3.cache 
   Repository revision:	820 	Src\Forms\obj\Release\res_4.resources 
   Repository revision:	820 	Src\Forms\obj\Release\res_5.resources
Gruß
LotPings
Bitte warten ..
Mitglied: Mario.Steinberg
28.05.2010 um 12:44 Uhr
Wow, danke für die schnellen Antworten.

ich habe mich für die Variante von LotPings entschieden

01.
For /F "delims=" %%A in (%VDD_TEMP%) do Set "Line=%%A" & Call :ProcLine  
02.
Goto :Eof  
03.
:ProcLine  
04.
>> %VDD_FILE% Echo.   Repository revision: %Line:~25,3%  %Line:~41% 
05.
:Eof 
Was genau macht Goto :Eof ? Musste ich das Label tatsächlich noch ergenzen?

Ich habe folgendes geschrieben:

01.
For /F "delims=" %%A in (%VDD_TEMP%) do Set "Line=%%A" & Call :ProcLine  
02.
Goto :Eof  
03.
:ProcLine  
04.
>> %VDD_FILE% Echo.   Repository revision: %Line:~25,3%  %Line:~41% 
05.
:Eof  
06.
 
07.
rm %VDD_TEMP%
Es scheint als ob das rm jetzt in der Schleife aufgerufen wird!??

Gibt es eine Möglichkeit den Ausdruck ohne die Funktion :ProcLine zu schreiben z.B.

01.
For /F "delims=" %%A in (%VDD_TEMP%) do ( 
02.
   Set "Line=%%A" & Call :ProcLine  
03.
   >> %VDD_FILE% Echo.   Repository revision: %Line:~25,3%  %Line:~41% 
04.
05.
 
06.
rm %VDD_TEMP%
Würde auch

01.
echo Repository revision: %Line:~25,3%  %Line:~41% >> %VDD_FILE%
funktionieren?

Was macht der . hinter Echo?

Danke und Gruß,
Mario
Bitte warten ..
Mitglied: Mario.Steinberg
28.05.2010 um 13:37 Uhr
So gehts:

For /F "delims=" %%A in (%VDD_TEMP%) do (
set "Line=%%A"
echo Repository revision: !Line:~23,4! !Line:~40! >> %VDD_FILE% 2<&1
)

rm %VDD_TEMP%
Bitte warten ..
Mitglied: LotPings
28.05.2010 um 13:56 Uhr
Zitat von Mario.Steinberg:
Was genau macht Goto :Eof ? Musste ich das Label tatsächlich noch ergenzen?
Nein :Eof ist ein Standardmäßig gesetzter Label für End of File.
Ein goto :Eof (!wichtig! mit Doppelpunkt) bewirkt einen Rücksprung aus einer Sub oder das Ende des Hauptteils.
Es verhindert hier das der Haupteil in die Sub durchläuft.


Ich habe folgendes geschrieben:

01.
> For /F "delims=" %%A in (%VDD_TEMP%) do Set "Line=%%A" & Call :ProcLine  
02.
> Goto :Eof  
03.
> :ProcLine  
04.
> >> %VDD_FILE% Echo.   Repository revision: %Line:~25,3%  %Line:~41% 
05.
> :Eof  
06.
>  
07.
> rm %VDD_TEMP% 
08.
> 
Es scheint als ob das rm jetzt in der Schleife aufgerufen wird!??
Ja, ein Label wird nur als Ansprungmarke benutzt, und hat sonst keine Funktion.
(Es wird mit :: auch häufig als Kommentar "missbraucht" )

Gibt es eine Möglichkeit den Ausdruck ohne die Funktion :ProcLine zu schreiben z.B.

Ja, hast du ja schon herausgefunden. Du brauchst dafür Setlocal EnableldelayedExpansion und bekommst ggfs. mit Ausrufezeichen im Text Probleme.

Würde auch
01.
> echo Repository revision: %Line:~25,3%  %Line:~41% >> %VDD_FILE% 
02.
> 
funktionieren?
JA, aber nur innerhalb der Schleife oder innerhalb einer von dort aufgerufenen Sub, da sich der Wert ja mit jeder Zeile der gelesenen Datei ändert.
Was macht der . hinter Echo?
Das ist nur ein alternativer Befehlstrenner (statt Leerzeichen gehen auch .,;;\/ und soll das Zählen der Leerzeichen erleichtern, da der Trenner ja nicht mitgezählt wird.

Gruß
LotPings
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Filtern Filtern Filtern
gelöst Frage von H41mSh1C0RBatch & Shell10 Kommentare

Aloa in die Runde, ich brech mir gerade wieder etwas die Finger ^^ am Freitag. DataTable einmal durchlaufen und ...

Microsoft Office
Spalte E nach beliebig vielen Suchbegriffen (mit Leerzeichen getrennt) durchsuchen und in Listbox ausgeben
gelöst Frage von mreskeMicrosoft Office12 Kommentare

Hallo ich habe eine Excel Tabelle mit einem Artikelstamm, in dem in der Spalte E die ARTIKELBEZEICHNUNG steht. Ich ...

Batch & Shell
Text von zeile mit wort, bis ziele mit wort
gelöst Frage von SaintwolfBatch & Shell5 Kommentare

suche eine Batch die eine txt auswertet inhalt: text a text b text c Fehler fehler in KB4568792 text ...

Batch & Shell
Leerzeichen im Pfad
Frage von JallioBatch & Shell4 Kommentare

Hallo erneut, ich werde hier echt noch zum Stammkunden Wenn ich den Befehl $body in der WindowsPowerShell ISE ausführe, ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 6 StundenWindows 101 Kommentar

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 7 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 22 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...