Dateien verschieben und umbenennen
Hallo zusammen,
ich stehe vor folgender Herausforderung.
Ich muss aus einem Verzeichnis Dateien in ein anderes Verzeichnis verschieben und dabei umbenennen.
Hierbei muss überprüft werden ob die Datei im Zielverzeichnis bereits existiert, wenn ja soll 40sec gewartet werden und
dann erneut versucht werden.
Hier mal ein Beispiel was gemeint ist:
Im Source Verzeichnis liegen Dateien mit folgender Benennung.
d:\out\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_01
d:\out\r1.mmm1122.rtz.ghl_02
d:\out\r1.mmm1122.rtz.ghl_03
Diese sollen dann nacheinander in ein anderes Verzeichnis verschoben werden allerdings ohne den Zähler.
d:\out\r1.mmm1122.rtz.ghl ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_01 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_02 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_03 ==> d:\transfer\r1.mmm1122.rtz.ghl
Vielleicht hat jemand einen Tip für mich wie sowas zu realisieren ist.
Danke im Voraus!
ich stehe vor folgender Herausforderung.
Ich muss aus einem Verzeichnis Dateien in ein anderes Verzeichnis verschieben und dabei umbenennen.
Hierbei muss überprüft werden ob die Datei im Zielverzeichnis bereits existiert, wenn ja soll 40sec gewartet werden und
dann erneut versucht werden.
Hier mal ein Beispiel was gemeint ist:
Im Source Verzeichnis liegen Dateien mit folgender Benennung.
d:\out\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_01
d:\out\r1.mmm1122.rtz.ghl_02
d:\out\r1.mmm1122.rtz.ghl_03
Diese sollen dann nacheinander in ein anderes Verzeichnis verschoben werden allerdings ohne den Zähler.
d:\out\r1.mmm1122.rtz.ghl ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_01 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_02 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_03 ==> d:\transfer\r1.mmm1122.rtz.ghl
Vielleicht hat jemand einen Tip für mich wie sowas zu realisieren ist.
Danke im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 278698
Url: https://administrator.de/contentid/278698
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
12 Kommentare
Neuester Kommentar
Moin,
keine große Sache mit Powershell
Gruß jodel32
keine große Sache mit Powershell
$in = 'D:\out'
$out = 'D:\transfer'
gci $in -Filter *.* | %{
$dest = "$out\$($_.Name -replace '_\d+$','')"
while (Test-Path $dest){sleep -Seconds 40}
move-item $_.Fullname -Destination $dest
}
Hallo.
XCopy?
Robocopy?
Rename?
Move?
Egal wie, am ende hast du nur die zuletzt kopierte/verschobene Datei falls du fleißig überschreiben tust, oder halt nur die allererste.... aber niemals viele mit ein und den gleichen Buchstabenkombinationen.
Gruß,
Peter
Zitat von @eazy-isi:
Hierbei muss überprüft werden ob die Datei im Zielverzeichnis bereits existiert, wenn ja soll 40sec gewartet werden und dann erneut versucht werden.
Wieso? Was ändert sich da innerhalb der 40 Sekunden ?Hierbei muss überprüft werden ob die Datei im Zielverzeichnis bereits existiert, wenn ja soll 40sec gewartet werden und dann erneut versucht werden.
d:\out\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_01
d:\out\r1.mmm1122.rtz.ghl_02
d:\out\r1.mmm1122.rtz.ghl_03
OK. Alle unterscheiden sich....d:\out\r1.mmm1122.rtz.ghl_01
d:\out\r1.mmm1122.rtz.ghl_02
d:\out\r1.mmm1122.rtz.ghl_03
d:\out\r1.mmm1122.rtz.ghl ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_01 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_02 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_03 ==> d:\transfer\r1.mmm1122.rtz.ghl
Und wie oft soll jetzt die r1.mmm1122.rtz.ghl existieren? Wie bei deinem Beispiel 4 mal. Alles am gleichen Ort. Die OSe die ich kenne lassen so etwas nicht zu. da kein in einen Ordner immer nur ein Objekt mit einer Schreibweise existieren. Ergo wird dein umbenennen nach dem kopieren nix, oder du musst immer wieder die einzige Datei überschreiben. Wo sind dann deine vorher kopierten Dateien hin? Genau - Nicht mehr existent.....d:\out\r1.mmm1122.rtz.ghl_01 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_02 ==> d:\transfer\r1.mmm1122.rtz.ghl
d:\out\r1.mmm1122.rtz.ghl_03 ==> d:\transfer\r1.mmm1122.rtz.ghl
Vielleicht hat jemand einen Tip für mich wie sowas zu realisieren ist.
Copy?XCopy?
Robocopy?
Rename?
Move?
Egal wie, am ende hast du nur die zuletzt kopierte/verschobene Datei falls du fleißig überschreiben tust, oder halt nur die allererste.... aber niemals viele mit ein und den gleichen Buchstabenkombinationen.
Gruß,
Peter
Hallo,
Gruß,
Peter
Zitat von @eazy-isi:
Im "$global:folderOUT" werden die Datein alle 30sec von einer anderen Software verarbeitet und danach gelöscht.
OK. Das wurde nicht gesagt das es eben keine Überschreibungen geben wird da die alten Dateien vorher schon anderweitig gelöscht werden. Ich hatte angenommen das die Dateien behalten werden sollen (Nein - über Inhalt und zweck habe ich null Ahnung )Im "$global:folderOUT" werden die Datein alle 30sec von einer anderen Software verarbeitet und danach gelöscht.
Gruß,
Peter
Abschreiben ist auch eine Lösung
Aber nur wenn man die Quelle nennt.