meisterluehrs
Goto Top

Mit einer Batch-Datei einzelne Ausschnitte aus einer Text-Datei löschen

guten morgen, ja... ich weiss... haben schon weiss gott wie viele andere gefragt... Aber, bei mir hilft nix :/
ich möchte mit Hilfe einer Batch-Datei einzelne Ausschnitte (z.B. eine Zeile) aus einer Textdatei löschen und dafür etwas anderes einsetzen.
Das habe ich bisher:

@echo off

set /p search=Filterinformation eingeben:

findstr /i /c:"%search%" "C:\users\admin\desktop\test.txt" > "C:\users\admin\desktop\ausgabe.txt"

wäre schön wenn mir jemand helfen könnte face-smile

Content-Key: 282886

Url: https://administrator.de/contentid/282886

Printed on: April 25, 2024 at 14:04 o'clock

Member: TlBERlUS
TlBERlUS Sep 15, 2015 at 08:28:48 (UTC)
Goto Top
Hi,

Powershell:
$path = ".\Desktop\test.txt"  
$content = gc $path
$content.Replace("test","Nope") | Out-File $path  


Grüße,

Tiberius
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 08:30:23 (UTC)
Goto Top
geht das nicht auch ohne Powershell ? wäre wichtig das es in einer Batch Datei ist
Member: TlBERlUS
TlBERlUS Sep 15, 2015 at 09:02:16 (UTC)
Goto Top
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 09:06:58 (UTC)
Goto Top
diesen Beitrag habe ich mir bereits angesehen, doch kann ihn leider nicht selber umsetzen :/ könntest du mir die einzelnen Komponenten des skriptes erleutern ?
Member: AndreasHoster
AndreasHoster Sep 15, 2015 at 09:11:08 (UTC)
Goto Top
Und wieso nicht den PowerShell 3 Zeiler in einer Batch aufrufen?
SET OldValue=test
SET NewValue=ERSETZT
powershell.exe -Command "$content = Get-Content -Path 'C:\users\admin\desktop\test.txt'; $content.Replace('%OldValue%','%NewValue%')| Out-File 'C:\users\admin\desktop\ausgabe.txt'"  
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 09:17:21 (UTC)
Goto Top
habe es jetzt mit deiner Methode ausprobiert ich bekomme jedoch nur das hier :

Fehler beim Aufrufen der Methode, da [System.Object[]] keine Methode mit dem Namen "Replace" enthält.
Bei Zeile:1 Zeichen:83

back-to-top$content = Get-Content -Path 'C:\users\aluehrs\desktop\test.txt'; $content.Replace <<<< ('alexand

er','alex ')| Out-File 'C:\users\aluehrs\desktop\ausgabe.txt'
+ CategoryInfo : InvalidOperation: (Replace:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
Member: Pjordorf
Pjordorf Sep 15, 2015 at 09:22:45 (UTC)
Goto Top
Hallo,

Zitat von @meisterluehrs:
doch kann ihn leider nicht selber umsetzen
Warum nicht? Was passt nicht? Wer hängt es? Was verstehst du nicht? Als Admin solltest du das aber schon besser erläutern können was du mit "kann es aber nicht umsetzen" meinst. wir wissen nicht was du nicht weist oder nicht kannst.

könntest du mir die einzelnen Komponenten des skriptes erleutern ?
Alle? Hast du überhaupt schon jemals mit Batchdateien (DOS/Windows) zu tun gehabt? Schon mal ein Handbuch gelesen? Wir sagen zwar heute Scripting, aber es ist trotzdem noch kein Hexenwerk.

Mal hier vorbeigeschaut? http://www.robvanderwoude.com/batchstart.php

Gruß,
Peter
Member: Pjordorf
Solution Pjordorf Sep 15, 2015 updated at 11:08:19 (UTC)
Goto Top
Hallo,

Zitat von @meisterluehrs:
habe es jetzt mit deiner Methode ausprobiert ich bekomme jedoch nur das hier :
Wie hast du es ausprobiert und auf welches OS hat du es ausprobiert? Bitte die genauen Schritte hier angeben.

Gruß,
Peter
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 09:27:18 (UTC)
Goto Top
bei mir hängt es an den Befehlen Command und Content ich weiss damit leider nichts anzufangen. Das Script an sich kann ich lesen doch bei mir schwirrt nur ein Fragezeichen bei diesen beiden Befehlen. Ich bin leider nicht aus der "alten schule", daher musste ich mich bisher nie groß mit dieser art Befehlen in Batch-Dateien befassen.
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 09:29:31 (UTC)
Goto Top
habe sein Script lediglich in eine Batch-Datei kopiert und dort für Old/New Value meine Daten eingegeben die ich ersetzt haben möchte bzw die ich mit diesem Programm dort hinein setzten wollte. habe dann nurnoch ein "pause" an das Ende gesetzt um mir anzusehen wo der Fehler liegt.

Windows 7
Member: Pjordorf
Solution Pjordorf Sep 15, 2015 updated at 11:08:16 (UTC)
Goto Top
Hallo,

Zitat von @meisterluehrs:
bei mir hängt es an den Befehlen Command und Content ich weiss damit leider nichts anzufangen
Du redest aber jetzt von Powershell, oder?
https://www.microsoftvirtualacademy.com/de-de/training-courses/windows-p ...
http://www.mcseboard.de/topic/193082-powershell-f%C3%BCr-anf%C3%A4nger/
http://blog.technical-life.at/2011/02/windows-powershell-die-ersten-sch ...
http://blogs.technet.com/b/chitpro-de/archive/2012/05/11/windows-powers ...

Und diese Textdatei existiert bei dir? 'C:\users\aluehrs\desktop\test.txt'

Gruß,
Peter
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 09:40:49 (UTC)
Goto Top
ja, ich meine damit Powershell und ja ich habe diese auf meinem Desktop und mit den nötigen Informationen gefüllt.
Member: TlBERlUS
TlBERlUS Sep 15, 2015 at 09:46:21 (UTC)
Goto Top
Zitat von @meisterluehrs:

ja, ich meine damit Powershell und ja ich habe diese auf meinem Desktop und mit den nötigen Informationen gefüllt.

Gib mal in der Powershell:
$psversiontable
ein und poste das Ergebnis .
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 09:50:47 (UTC)
Goto Top
Name Value
-----
CLRVersion 2.0.50727.5485
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
Member: Pjordorf
Solution Pjordorf Sep 15, 2015 updated at 11:08:11 (UTC)
Goto Top
Hallo,

Zitat von @meisterluehrs:
PSVersion 2.0
OK. Version stimmt.

Schreib mal in deine Batchdatei
SET OldValue=test
SET NewValue=ERSETZT
powershell.exe -Command "$content = Get-Content -Path 'C:\users\aluehrs\desktop\test.txt'; $Content -Replace('%OldValue%','%NewValue%')| Out-File 'C:\users\aluehrs\desktop\ausgabe.txt'"  

Das sollte funktionieren

Gruß,
Peter
Member: meisterluehrs
meisterluehrs Sep 15, 2015 at 10:24:03 (UTC)
Goto Top
Ja, es hat Funktioniert.
Einen riesen Dank dir, du hast mir wirklich weitergeholfen! face-smile
Mitglied: 122990
Solution 122990 Sep 15, 2015 updated at 11:08:00 (UTC)
Goto Top
Hmm irgendwie ein Doppelpost, genau das haben wir dir eigentlich in deinem letzten Post schon gespostet:
Text filtern, mit Hilfe einer Batch Datei ?

Gruß grexit
Member: Pjordorf
Solution Pjordorf Sep 15, 2015 updated at 11:07:58 (UTC)
Goto Top
Hi,

Zitat von @122990:
Hmm irgendwie ein Doppelpost
Jepp. Aber glaubst du das der TO es versteht?

genau das haben wir dir eigentlich
Du willst sagen das dein
powershell -Executionpolicy ByPass -Command "(gc 'C:\datei.txt') -replace '(^pc03) (.*)','$1 max muster' | out-file 'C:\datei.txt'"  
das gleiche tut? face-smile obwohl der doch anders aussieht (paar Buchstaben mehr und andere....) face-smile face-smile face-devilish

@meisterluehrs
Vergleiche mal deine beiden Powershell Skripte und erkläre dir warum beide das gleiche tun obwohl anders formuliert.... Hätte also schon gestern klappen müssen....

Gruß,
Peter
Member: Pjordorf
Solution Pjordorf Sep 15, 2015 updated at 11:07:47 (UTC)
Goto Top
Hallo,

Zitat von @meisterluehrs:
Einen riesen Dank dir, du hast mir wirklich weitergeholfen! face-smile
Dann vergebe noch die Big Points und mach ein, zwei grüne Häkchen dran.

Gruß,
Peter