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

Frage Entwicklung Batch & Shell

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, 8873 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
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 23 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit27 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

SAN, NAS, DAS
Hilfe beim Einrichten eines Storages (SAN)
gelöst Frage von Vader666SAN, NAS, DAS15 Kommentare

Hallo Admins! Ich bin in einer kleineren Firma und hatte bisher mit dem Thema SAN nur in meiner Ausbildung ...

Monitoring
VPN Performance Zyxel-Fritte
gelöst Frage von HenereMonitoring13 Kommentare

Servus, nachdem ihr mir ja schon so gut helfen konntet, was das VPN zwischen Zyxel USG60W und Fritte 7490 ...