Dateien in Mitarbeiterordnern verschieben
Hallo,
ich komme leider bei einem Powershell-Skript nicht weiter.
Die Anforderung ist eigentlich nicht schwer. Ich habe einen Pfad" F:\Test\Scan" unter diesen Pfad sind Mitarbeiterordner. In die jeweiligen MA-Ordner wird ein Unterordner mit dem heutigen Datum erstellt. Alle Dateien in dem MA-Ordner die zum dem (Datum)-Ordner passen, sollen in diesen verschoben werden.
Mein Problem ist, unten das move-item.
Normalerweise sollte auf den Ordner "F:\Test\Scan\MA1" usw. zugegriffen werden. Gesucht werden aber nur Dateien im Ordner F:\Test\Scan.
nteressanterweise werden aber die Dateien gesucht, welche in "$files = Get-ChildItem $ma_path | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-1))}"
gefunden worden.
Nur, wie gesagt, werden dann die Dateien bei move-item im falschen Ordner gesucht.
So sieht mein Skript aus:
Das ist meine Fehlermeldung:
move-item : Der Pfad "F:\Test\Scan\abc.pdf" kann nicht gefunden werden, da er nicht vorhanden ist.
Die Datei liegt aber in "F:\Test\Scan\MA1\
Irgendwas muss ich bei move-item verändern. aber ich weiß nicht was.
Wäre super, wenn Ihr mir helfen könnt!
Vielen Dank!
ich komme leider bei einem Powershell-Skript nicht weiter.
Die Anforderung ist eigentlich nicht schwer. Ich habe einen Pfad" F:\Test\Scan" unter diesen Pfad sind Mitarbeiterordner. In die jeweiligen MA-Ordner wird ein Unterordner mit dem heutigen Datum erstellt. Alle Dateien in dem MA-Ordner die zum dem (Datum)-Ordner passen, sollen in diesen verschoben werden.
Mein Problem ist, unten das move-item.
Normalerweise sollte auf den Ordner "F:\Test\Scan\MA1" usw. zugegriffen werden. Gesucht werden aber nur Dateien im Ordner F:\Test\Scan.
nteressanterweise werden aber die Dateien gesucht, welche in "$files = Get-ChildItem $ma_path | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-1))}"
gefunden worden.
Nur, wie gesagt, werden dann die Dateien bei move-item im falschen Ordner gesucht.
So sieht mein Skript aus:
$heute = Get-Date -UFormat "%d-%m-%y"
$base_path = "F:\Test\Scan"
$ma_pathes = get-Childitem $base_path -Directory
Set-Location $base_path
foreach($ma_path in $ma_pathes) {
if(!(Test-Path "$($ma_path.fullname)\$heute"))
{
new-item "$($ma_path.fullname)\$heute" -itemtype "directory"
}
$files = Get-ChildItem $ma_path | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-1))}
foreach($file in $files) {
move-item $file -Destination $ma_path\$heute\
}
}
Das ist meine Fehlermeldung:
move-item : Der Pfad "F:\Test\Scan\abc.pdf" kann nicht gefunden werden, da er nicht vorhanden ist.
Die Datei liegt aber in "F:\Test\Scan\MA1\
Irgendwas muss ich bei move-item verändern. aber ich weiß nicht was.
Wäre super, wenn Ihr mir helfen könnt!
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 621489
Url: https://administrator.de/contentid/621489
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
4 Kommentare
Neuester Kommentar
$files = Get-ChildItem $ma_path.FullName -File | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-1))}
# ......
move-item $file.Fullname -Destination "$ma_path\$heute\"
# .....
$files = Get-ChildItem $ma_path.FullName -File | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-1))}
# ......
$file | move-item -Destination "$($ma_path.FullName)\$heute\"
# .....
Immer dran denken PS ist objektorientiert . Wenn du nur ein Object mit vielen Eigenschaften übergibst nimmt sie die Standardeigenschaft und hier ist das nur der Namen aber nicht der volle Pfad.