Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

batch, string finden und erstezen

Frage Entwicklung Batch & Shell

Mitglied: webbudda

webbudda (Level 1) - Jetzt verbinden

15.01.2009, aktualisiert 14:37 Uhr, 5313 Aufrufe, 16 Kommentare

Hallo,

ich habe leider wenig ahnung von batches. ich habe eine datei, in welcher ich einen string bearbeiten möchte.

im original steht in der datei in einer zeile:
eintrag_name 4711

zwischen "eintrag_name" und dem entsprechenden value (4711) ist eine unbestimmte anzahl leerzeichen. Ich möchte diesen string in der datei finden und den value verändern (0815). leider bekomme ich das per batch nicht hin. kann mir jemand helfen?

wäre sehr sehr dankbar, habe schon viel ausprobiert, was ich hier gefunden habe. ohne erfolg.
Mitglied: Turrex0100
15.01.2009 um 14:46 Uhr
du möchtest also die zeichen 4711 durch 0215 in der datei austauschen?
Bitte warten ..
Mitglied: webbudda
15.01.2009 um 14:48 Uhr
ja richtig, sofern die 0815 da noch nicht steht.
möglich wäre aber eventuell auch, dass anstatt 4711 da eine 4710 stehen könnte. am besten die ganze zeile löschen und (möglichst an der stelle) ersetzen.
Bitte warten ..
Mitglied: Turrex0100
15.01.2009 um 14:50 Uhr
also mit batch ist das glaube ich nicht möglich du kannst jedoch ein temporäres vbs script in eine bat datei stecken
ich bastel dir ebend ein script zusammen....
Bitte warten ..
Mitglied: Turrex0100
15.01.2009 um 14:53 Uhr
@echo off & setlocal

set "Datei=C:\Dokumente und Einstellungen\text.txt"

set "Von=&&"

set "Nach=>"

set R=%temp%ReplaceInFile.vbs

>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2))

cscript //nologo %R% "%Datei%" "%Von%" "%Nach%"


das musst du in eine bat datei stecken und die werte für dich ändern sollte dann klappen

lg Turrex
Bitte warten ..
Mitglied: webbudda
15.01.2009 um 14:58 Uhr
ehm erstmal natürlich besten dank. welche werte meinst du jetzt.
set "Von=4711"

set "Nach=0815"

? würde heissen ich hätte bei 4710 den wert nicht ersetzt?
Bitte warten ..
Mitglied: Turrex0100
15.01.2009 um 15:03 Uhr
genau,
du willst ja "von" 4711 "nach" 0215
ändern.

Allerdings: Das programm funktioniert nur, wenn in der datei der "von" wert steht

lg turrex
Bitte warten ..
Mitglied: Turrex0100
15.01.2009 um 15:05 Uhr
du kannst aber das script so aufbauen:


set "Datei=C:\Dokumente und Einstellungen\text.txt"
set "Von=3000"
set "Nach=1000"
:start
set R=%temp%ReplaceInFile.vbs
>%R% echo Set fso=CreateObject("Scripting.FileSystemObject"):Set a=WScript.Arguments:T=fso.OpenTextFile(a(0)).ReadAll:fso.CreateTextFile(a(0)).Write Replace(T,a(1),a(2))
cscript //nologo %R% "%Datei%" "%Von%" "%Nach%"
cls
set "Von=4000"
set "Nach=0000"
goto :start
Bitte warten ..
Mitglied: webbudda
15.01.2009 um 15:12 Uhr
ok super, danke erstmal.
ich kann leider nicht davon ausgehen, dass ein bestimmter wert darin steht bzw kenne ich diesen nicht. muss nur sicherstellen, dass nach dem batch der neue drin steht...
Bitte warten ..
Mitglied: Turrex0100
15.01.2009 um 15:20 Uhr
naja ich hoffe erstmal das ich dir helfen konnte...

lg
Bitte warten ..
Mitglied: bastla
15.01.2009 um 16:28 Uhr
@Turrex0100
Du bist ja ein richtiger Bastler ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
15.01.2009 um 16:31 Uhr
Hallo webbudda und willkommen im Forum!
ich kann leider nicht davon ausgehen, dass ein bestimmter wert darin steht bzw kenne ich diesen nicht.
Lässt sich demnach das Problem so formulieren: "Ändere in allen Zeilen, die mit "eintrag_name" beginnen, die letzten 4 Stellen auf einen vorgegebenen Wert"?

Grüße
bastla
Bitte warten ..
Mitglied: webbudda
15.01.2009 um 16:43 Uhr
naja fast nech, würde da 123 stehen, die letzten 3 zeichen. ist halt schwierig.
Bitte warten ..
Mitglied: Turrex0100
15.01.2009 um 17:30 Uhr
ich versuche nur zu helfen bin allerdings selbst ein neuling...

lg turrex
Bitte warten ..
Mitglied: bastla
15.01.2009 um 17:47 Uhr
Hallo webbudda!

Wie sieht's mit folgender Formulierung aus: "Ändere in allen Zeilen, die mit "eintrag_name" beginnen, alles nach dem letzten Leerzeichen auf den vorgegebenen Wert"?

Grüße
bastla
Bitte warten ..
Mitglied: webbudda
15.01.2009 um 20:28 Uhr
ja so kann man es auch formulieren.
Bitte warten ..
Mitglied: bastla
15.01.2009 um 22:30 Uhr
Hallo webbudda!

Dann könnte das etwa so gehen:
01.
@echo off & setlocal 
02.
set "Datei=D:\Textdatei.txt" 
03.
set "Suche=eintrag_name" 
04.
set "Neu=0815" 
05.
 
06.
set R=%temp%\ReplaceInFile.vbs 
07.
> %R% echo Set fso=CreateObject("Scripting.FileSystemObject"):T=Split(fso.OpenTextFile("%Datei%").ReadAll,vbCrLF):N="%Neu%" 
08.
>>%R% echo S="%Suche%":L=Len(S):For Each Z In T:If Left(Z,L)=S Then If InStrRev(Z," ")^>0 Then Z=Left(Z,InStrRev(Z," "))^&N 
09.
>>%R% echo A=A^&vbCrLF^&Z:Next:fso.CreateTextFile("%Datei%",True).Write Mid(A,3) 
10.
 
11.
cscript //nologo %R%
Gesucht wird nach "eintrag_name" entsprechend der exakten Schreibweise (mit Berücksichtigung von Groß- und Kleinschreibung), und die Ersetzung erfolgt "in" der Datei (ohne Erstellung einer Sicherungskopie).

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch Syntaxfehler, aber finde ihn nicht :( (5)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Linux Tools
gelöst Dateien in Unix finden, die mehrere Strings beinhalten (7)

Frage von renegade51 zum Thema Linux Tools ...

Batch & Shell
Nummerierte dateien lücke finden .batch (2)

Frage von franky89 zum Thema Batch & Shell ...

Batch & Shell
gelöst Nonsense Error - find ihn nicht. (Batch) (7)

Frage von clragon zum Thema Batch & Shell ...

Neue Wissensbeiträge
Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(5)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Windows 10

Microsoft veröffentlicht das "Fall Creators Update

(10)

Information von Penny.Cilin zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...