Finde Dateiinhalt- Suche an anderem Ort danach- Ändere Dateiname
Hallo,
ich mal wieder und habe immer noch mein Problem von neulich - diesmal beschreibe ich es hoffentlich besser.
Ich brauche für folgendes ein Powershell-Script:
In Ordner A kommen immer wieder neue Dateien, die nach 10 Minuten in einen Ordner B verschoben werden. Zusätzlich wird beim Verschieben in Ordner B eine Kopie im Unterordner SAVE von Ordner A abgelegt.
Struktur:
C:\temp\OrdnerA
C:\temp\OrdnerA\save (Kopie v. Original nach 10 Min. aus Ordner A)
C:\temp\OrdnerB (Original n. 10 Min. aus Ordner A)
In den 10 Minuten hätte ich gern folgendes geprüft:
In einer Beispieldatei sind mehrere Zeilen mit Text. Eine Zeile davon beginnt immer mit "HMAAA+123+". Nach dem PLUS folgt eine Nummer, die unterschiedlich ist. Nun kann diese Nummer aber auch nochmal vorkommen. Deshalb stelle ich mir das Script wie folgt vor:
Lese Datei in OrdnerA aus und suche nach HMAAA+123+. Speichere Nummer zwischen. Suche die Nummer in den Daten von OrdnerB. Wenn Nummer nicht gefunden, OK. Wenn Nummer gefunden, füge eine 2 im Dateinamen (Datei aus OrdnerA) hinzu.
ich mal wieder und habe immer noch mein Problem von neulich - diesmal beschreibe ich es hoffentlich besser.
Ich brauche für folgendes ein Powershell-Script:
In Ordner A kommen immer wieder neue Dateien, die nach 10 Minuten in einen Ordner B verschoben werden. Zusätzlich wird beim Verschieben in Ordner B eine Kopie im Unterordner SAVE von Ordner A abgelegt.
Struktur:
C:\temp\OrdnerA
C:\temp\OrdnerA\save (Kopie v. Original nach 10 Min. aus Ordner A)
C:\temp\OrdnerB (Original n. 10 Min. aus Ordner A)
In den 10 Minuten hätte ich gern folgendes geprüft:
In einer Beispieldatei sind mehrere Zeilen mit Text. Eine Zeile davon beginnt immer mit "HMAAA+123+". Nach dem PLUS folgt eine Nummer, die unterschiedlich ist. Nun kann diese Nummer aber auch nochmal vorkommen. Deshalb stelle ich mir das Script wie folgt vor:
Lese Datei in OrdnerA aus und suche nach HMAAA+123+. Speichere Nummer zwischen. Suche die Nummer in den Daten von OrdnerB. Wenn Nummer nicht gefunden, OK. Wenn Nummer gefunden, füge eine 2 im Dateinamen (Datei aus OrdnerA) hinzu.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 547284
Url: https://administrator.de/contentid/547284
Ausgedruckt am: 19.11.2024 um 01:11 Uhr
11 Kommentare
Neuester Kommentar
Ansatz für dich so wie ich deine Beschreibung interpretiert habe:
$ordnerA = 'D:\OrdnerA'
$extension = '*.txt'
$ordnerB = 'D:\OrdnerB'
sls $ordnerA\* -Pattern "HMAAA\+(\d+)\+" -Include $extension | %{
$num = $_.Matches.Groups[1].Value
if ($num -ne $null){
$found = sls $ordnerB\* -Pattern $num -SimpleMatch -Quiet -Include $extension
if ($found){
rename-item $_.Path -NewName ([io.Path]::GetFileNameWithoutExtension($_.Path) + "_2" + [io.Path]::GetExtension($_.Path)) -verbose
}
}
}
Zitat von @sokraTonis:
Hallo soccer,
danke für die schnelle Hilfe . Das Script funktioniert in soweit, dass ich bis Zeile 10 komme und dann auf eine Fehlermeldung treffe:
"Rename-Item: Der Prozess kann nicht auf die Datei zugreifen, da sie bereits von einem anderen Prozess verwendet wird."
Dann öffne den ProcessExplorer und schau nach von welchem Prozess die Datei blockiert wird.Hallo soccer,
danke für die schnelle Hilfe . Das Script funktioniert in soweit, dass ich bis Zeile 10 komme und dann auf eine Fehlermeldung treffe:
"Rename-Item: Der Prozess kann nicht auf die Datei zugreifen, da sie bereits von einem anderen Prozess verwendet wird."
Funktioniert hier nämlich einwandfrei.
Tja wir kennen dein System und die Dateien die es benutzt nicht. Wie gesagt läuft hier problemlos, liegt also nicht am Skript.
Zitat von @sokraTonis:
Zum Abschluss gilt noch folgendes zu sagen:
@142970, danke dir für deine schnelle Hilfe
---
Da auch dieses Script die Variable hinter HMAA+123+%variable% nicht berücksichtigt hat,
Zum Abschluss gilt noch folgendes zu sagen:
@142970, danke dir für deine schnelle Hilfe
---
Da auch dieses Script die Variable hinter HMAA+123+%variable% nicht berücksichtigt hat,
Tja, du hättest auch einfach selbst in Zeile 5 den entsprechenden Pattern anpassen können (deine Beschreibung war leider nicht eindeutig genug für uns), aber wenn man noch nicht mal gewillt ist sich minimal mit Codes zu beschäftigen, dann tust du mir ehrlich gesagt auch nicht leid.
Lies und lerne von Codes, nicht "Frage und machst du bidde fertisch" lautet das Motto.
So long.