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 Per Batch bestimmte Zeichenketten bzw. Stellen in Datei suchen und als Dateiname verwenden

Mitglied: loony666

loony666 (Level 1) - Jetzt verbinden

06.02.2008, aktualisiert 08.02.2008, 8890 Aufrufe, 5 Kommentare

Anfänger benötigt Hilfe

Hallo,

ich habe etliche Einträge zu diesem Thema gefunden, bin aber überhaupt nicht schlau draus geworden.
Vielleicht könnt Ihr bei meinem Problem Hifestellung leisten:
Ich habe eine Datei, welche den Dateinamen 1.out hat.
Inhalt der Datei ist: an Irgendeiner Stelle kommt eine Zeichenkette "ADREVER(+18 Blanks)" vor. Der Inhalt nach dieser Zeichenkette soll in der Länge 55 ohne Blank als erster Teil des Namens verwendet werden.
Gefolgt von einem _ und dann der Zweite Teil mit Zeichenkette "BORK(+4 Blanks)" nach dieser Länge 28 ohne Blanks.

Inhalt Datei:
ADREVER(+18 Blanks)Hallo(+50Blanks)68529356423
BORK(+4 Blanks)01012008(+20Blanks)563467

Ergebnis: Dateiname lautet -> Hallo_01012008.out

Die Stelle ist nur durch die Zeichenkette zu finden.
Das ist bestimmt Möglich, weiß nur nicht wie.

Danke für die Hilfe.

Marko

EDIT: Da die Blanks nicht angezeigt worden hab ich die in Klammer dazugeschrieben...
Mitglied: lowbyte1
07.02.2008 um 02:13 Uhr
helo loony666


so wie ich das verstanden habe suchst du das ...

getestet mit txt file namens 1.out


01.
@echo off & setlocal 
02.
set "e=echo." 
03.
Findstr /R "ADREVER BORK" 1.out.txt >> test5.txt 
04.
For /F "tokens=2" %%i in (test5.txt) do call :ProcessLine "%%i" 
05.
%e% 
06.
%e%Ergebnis: Dateiname lautet - %var%_%var1%.out 
07.
ren 1.out.txt %var%_%var1%.out                                                                                                             
08.
%e% & %e% & %e% 
09.
pause 
10.
del test5.txt 
11.
endlocal & exit 
12.
 
13.
:ProcessLine 
14.
	 
15.
if not defined var ( 
16.
	     	Set "var=%~1" 
17.
	) else ( 
18.
	    	Set "var1=%~1" 
19.
20.
goto:eof 
21.
 


lowbyte
Bitte warten ..
Mitglied: loony666
07.02.2008 um 09:14 Uhr
Moin lowbyte,

perfekt! Vielen Dank für die Umsetzung!
Kann man das auch für alle Dateien *.out.txt durchführen?
Im Moment muss ja der Dateiname Fest vorgegeben werden.
Könntest du mir evtl. auch erklären warum das so funktioniert?

Danke

Marko
Bitte warten ..
Mitglied: loony666
07.02.2008 um 14:15 Uhr
Ich nochmal

Also die Schleife war einfach...

Klappt jetzt alles!

Eine kleine Erklärung zu dem Code währe trotzdem lieb.
Ich kann es noch nicht 100%tig verstehen

Marko
Bitte warten ..
Mitglied: lowbyte1
08.02.2008 um 00:08 Uhr
helo marko

wen du ein paar dateien umbenennen willst ...
dieser code_schnipsel funktioniert nur wen die dateien alle (inkrementierent) bennant sind zbsp: 1.out.txt 2.out.txt 3.out.txt usw.
und die findstr argumente wie ADREVER und BORK auch gleich bleiben.

01.
echo.wieviele dateien möchtest du umbenennen? 
02.
echo.input: 
03.
set /P input= 
04.
for /L %%a in (1,1,%input%) do Findstr /R "ADREVER BORK" %%a.out.txt >> test%%a.txt 
05.
dann weiter verarbeiten ...


code erklärung

01.
@echo off & setlocal                                                                          1.echo off  //  Startet die Begrenzung des Gültigkeitsbereiches von Änderungen. 
02.
                                                                                                              Änderungen der Umgebung nach SETLOCAL sind nur auf die Batchdatei bezogen. 
03.
set "e=echo."                                                                                 2.befehl echo. wird der variable e zugewisen. 
04.
Findstr /R "ADREVER BORK" 1.out.txt >> test5.txt 
05.
For /F "tokens=2" %%i in (test5.txt) do call :ProcessLine "%%i"                               3.liest das 2.te token aus der test5.txt, danach wird der codeblock :ProcessLine ge-callt (in abschnitt 4.) und im das argument %%i übergeben. 
06.
                                                                                                in diesem fall läuft bei dir die schleife genau 2 mal weil du 2 werte ausliest und danach var und var1 zuweist. 
07.
%e% 
08.
%e%Ergebnis: Dateiname lautet - %var%_%var1%.out                                              7.wen die 2 variablen ein wert haben setzten wir die strings zusammen und zeigen das ergebniss an. 
09.
ren 1.out.txt %var%_%var1%.out                                                                8.wir benennen die datei um. in %var%_%var1%.out 
10.
%e% & %e% & %e%                                                                               9.das sind nur echos (das wird dich verwirrt haben). 
11.
pause                                                                                        10.break 
12.
del test5.txt                                                                                11.lösche test5.txt 
13.
endlocal & exit                                                                              12.beendet die begrenzung des gültigkeitsbereiches von änderungen.  und batch schlissen. 
14.
                                                                                      
15.
 
16.
:ProcessLine                                           4. codeblock :ProcessLine . 
17.
	 
18.
if not defined var (                                   5. falls nicht definiert variable  "var"        
19.
	     	Set "var=%~1"                             argument %%i variable "var" zuweisen. 
20.
	) else (                                          sonst .... 
21.
	    	Set "var1=%~1"                            argument %%i variable "var1" zuweisen. 
22.
23.
goto:eof                                               6. in diesem fall end of codeblock. danach sprung zurück nach abschnitt 3. 
24.
 

lowbyte
Bitte warten ..
Mitglied: loony666
08.02.2008 um 08:27 Uhr
Moin lowbyte,

vielen Dank auch für die Erklärung. Jetzt verstehe ich auch was ich da eingegeben habe

Marko
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch zum suchen bestimmter Dateien
gelöst Frage von FurycanBatch & Shell2 Kommentare

Hallo zusammen, ich hoffe man kann mir hier helfen. Ich Suche ein Script das mir folgendes macht: In einem ...

Batch & Shell

Batch-Datei um Dateien mit bestimmten Dateinamen zu löschen

gelöst Frage von SwisterBatch & Shell4 Kommentare

Hallo, Ich habe mehrere Tausend Bilder die folgenden Namen haben "m20130310040500500". Der Name setzt sich wie so zusammen "m" ...

Windows 10

Vbs oder batch zum Ändern von Dateinamen ab Zeichenkette

gelöst Frage von vbaGastWindows 1013 Kommentare

Guten Tag, nach meinen bisherigen Recherchen wird das Problem mit Batch eher schwierig zu lösen sein. Daher würde auch ...

Batch & Shell

Dateiname per Batch auslesen und um eine Stelle verkleinern

gelöst Frage von kaiuwe28Batch & Shell2 Kommentare

Hallo zusammen, ich hatte gerade schon eine Frage zwecks Dateien kopieren im Forum gestellt und zum Glück auf mal ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 2 TagenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 3 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 3 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement19 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Netzwerkgrundlagen
VLAN - Offene Fragen
Frage von KnettenbrechNetzwerkgrundlagen17 Kommentare

Hallo zusammen, ich befasse mich derzeit mit dem Thema VLAN. Hierzu habe ich schon einige Guides gelesen, einschließlich des ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android13 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...

Router & Routing
VPN hinter zweiter Fritzbox nutzen im Nachbarhaus
gelöst Frage von georg2204Router & Routing11 Kommentare

Hallo zusammen, ich blicke hier leider nicht mehr so ganz durch. In Haus 1 steht eine Fritzbox 7390, diese ...