thundersmile
Goto Top

Einen Wert manuell eingeben und in einer Datei ein bestimmtest Wort ändern

Hallo Zusammen,

ich hoffe ihr könnt mir helfen. Ich würde gerne ein Skript schreiben, dass folgendes kann:

- Überprüfung der laufenden Nummer in einer Datei:
Wenn ich das Skript starte sollte es als erstes eine Textdatei namens #LfdNr.txt" überprüfen in der einen laufende Nummer eingetragen ist z.B. "0000000162"
- Laufenden Nummer um eins hochzählen:
Den Inhalt der laufenden Nummer um eins hoch zählen bzw. eintragen.
- Den Inhalt einer anderen Datei durchsuchen und ersetzen:
In einer anderen Datei mit dem Namen z.B. "MPR_AAQ_CO496G_XXXXXXXXXX" den Wert "XXXXXXXXXX" suchen und durch die neue laufende Nummer ersetzten.
- Durchsuchte Datei einen neuen Namen geben:
Die neue laufende Nummer soll gleichzeitig auch den Namen der Datei ändern z.B. sollte diese anschließend so lauten "MPR_AAQ_CO496G_0000000163".

Ich bin leider nicht der fitteste in dem Bereich und hoffe ihr könnt mir weiterhelfen.

Vielen Dank schon mal.

Viele Grüße

ThunderSmile

Content-Key: 367559

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

Printed on: April 19, 2024 at 05:04 o'clock

Member: colinardo
Solution colinardo Mar 09, 2018 updated at 16:15:39 (UTC)
Goto Top
Hallo ThunderSmile, willkommen auf Administrator.de!
Ich würde gerne ein Skript schreiben
Das ist a erst mal OK, aber was hast du dir denn selbst schon mal erarbeitet?
Solche Threads haben ja immer erst mal ein gschmäckle face-confused. Das du es zumindest ansatzweise versucht hast, sieht man hier leider nicht, aber naja ist ja schon wieder Freitag ...

Hier mal was für dich zum lernen mit Powershell. Kommentare stehen über jeder Zeile
# Ordner mit den Dateien
$folder = 'D:\MeinOrdner'  
# Datei welche die laufende Nummer in der ersten Zeile enthält
$numfile = "D:\MeinOrdner\#LfdNr.txt"  
# aktuelle Nummer auslesen
$oldnum = (gc $numfile -TotalCount 1).Trim()
# Nummer um eins erhöhen
$newnum = ([decimal]$oldnum + 1).toString().PadLeft(10,"0")  
# neue Nummer in $numfile zurückschreiben
$newnum | sc $numfile
# Dateien mit der ursprünglichen Nummer im Dateinamen im Ordner suchen
gci $folder | ?{!$_.PSIsContainer -and $_.Basename -like "*$oldnum"} | %{  
    # alte Nummer durch neuee Nummer ersetzen
    (gc $_.FullName).Replace($oldnum,$newnum) | sc $_.Fullname
    # Datei umbenennen
    rename-item $_.FullName -NewName $_.FullName.Replace($oldnum,$newnum)
}
Nun ran an die Buletten!

Schönes Wochenende .
Grüße Uwe
Member: ThunderSmile
ThunderSmile Mar 12, 2018 at 14:18:07 (UTC)
Goto Top
Hi Uwe,

Danke für deine Antwort. Mir geht es nicht darum, dass mir jemand die Arbeit abnimmt - keine Sorge.
Ich habe schon mehrere kleiner Skripte des öftern geschrieben, nur bei dem Fall, weis ich ehrlich gesagt nicht wie
ich anfangen soll. Mir gings nur darum die Logik zu verstehen die ich für das Thema benutzen muss.
Mit PowerShell habe ich bisher noch nicht viel gemacht, daher habe ich mich daran noch nicht so ran getraut.

Also bitte nicht meine Anfrage um Hilfe bitte nicht falsch verstehen.

Viele Grüße

ThunderSmile