Für Dateiname einen Ordner erstellen und dann entsprechnede Datein da rein schieben
Hallo,
ich habe ein Problem mit Win Powershell.
Habe einen Win7 Rechner der als Server und NAS fungiert. Weiterhin habe ich eine Dreambox 7025+. Nun möchte ich die auf der internen Festplatte der Dreambox aufgenommenen Filme auf meine NAS kopieren bzw verschieben. Dieses wollte ich mit Powershell lösen.
Aber ich bekomme das eigentliche verschieben einfach nicht hin.
Hier mal mein verwendeter Code:
Folgender Fehler wird angezeigt:
PS Microsoft.PowerShell.Core\FileSystem::\\DM7025\harddisk\movie> E:\powershell\Filme kopieren.ps1
Fehlender Anweisungstext in der foreach-Schleife.
Bei E:\powershell\Filme kopieren.ps1:26 Zeichen:1
+ FullyQualifiedErrorId : MissingForeachStatement
Ich glaube das ich ein Problem mit den Dateinamen habe. Denn die Filme heißen al la
20150307 20:15_RTL Televosion_rapunzel_neu verföhnt.ts
Für diesen Film gibt es noch diverse andere Formate bzw dateien die ich alle mit rüber schieben will.
Geht das mit dem Namen überhaupt so einfach?
Habe ich am Code etwas falsch?
Vielen Dank für Hilfe.
Focus
P.S.: Das ist mein erster Gehversuch mit Powershell. Also bitte nicht in der Luft zerreissen, wenn ich etwas falsch gemacht habe. Danke. smile.
ich habe ein Problem mit Win Powershell.
Habe einen Win7 Rechner der als Server und NAS fungiert. Weiterhin habe ich eine Dreambox 7025+. Nun möchte ich die auf der internen Festplatte der Dreambox aufgenommenen Filme auf meine NAS kopieren bzw verschieben. Dieses wollte ich mit Powershell lösen.
Aber ich bekomme das eigentliche verschieben einfach nicht hin.
Hier mal mein verwendeter Code:
#In das Verzweichnis der Dreambox wechseln
cd \\DM7025\harddisk\movie\
#alle namen der Filme auslesen
$daten = Get-ChildItem -Filter *.ts
#ForEach Schleife zum einlesen der Daten die sich im Ordner befinden.
foreach($i in $daten){
$pfad = "E:\Filme\" + $i.BaseName
$vha = Test-Path -path $pfad -pathtype container
#prüfen ob Ordner vorhanden ist.
if ($vha -eq $true)
#Wenn ja, dann Kopiervorgang abrechen
{
}
else
#Wenn Ordner nicht vorhanden, wird Ordner erstellt und die entsprechenden Dateien dort hin geschoben
{
$name = $i.basename
New-Item -path $pfad -ItemType directory
$filme = Get-ChildItem -Filter $name
foreach($u in $filme)
move-item -path \\DM7025\harddisk\movie\ -destination $pfad
}
}
Folgender Fehler wird angezeigt:
PS Microsoft.PowerShell.Core\FileSystem::\\DM7025\harddisk\movie> E:\powershell\Filme kopieren.ps1
Fehlender Anweisungstext in der foreach-Schleife.
Bei E:\powershell\Filme kopieren.ps1:26 Zeichen:1
<<<< move-item -path \\DM7025\harddisk\movie\ -destination $pfad
+ CategoryInfo : ParserError: ( , ParentContainsErrorRecordException+ FullyQualifiedErrorId : MissingForeachStatement
Ich glaube das ich ein Problem mit den Dateinamen habe. Denn die Filme heißen al la
20150307 20:15_RTL Televosion_rapunzel_neu verföhnt.ts
Für diesen Film gibt es noch diverse andere Formate bzw dateien die ich alle mit rüber schieben will.
Geht das mit dem Namen überhaupt so einfach?
Habe ich am Code etwas falsch?
Vielen Dank für Hilfe.
Focus
P.S.: Das ist mein erster Gehversuch mit Powershell. Also bitte nicht in der Luft zerreissen, wenn ich etwas falsch gemacht habe. Danke. smile.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 265552
Url: https://administrator.de/contentid/265552
Ausgedruckt am: 17.11.2024 um 11:11 Uhr
1 Kommentar
Moin,
uahhhhhhhhh
lässt sich so abkürzen:
Gruß jodel32
uahhhhhhhhh
lässt sich so abkürzen:
$dreambox = '\\DM7025\harddisk\movie'
$daten = gci $dreambox -Filter "*.ts"
foreach($i in $daten){
$pfad = "E:\Filme\" + $i.BaseName
if (!(Test-Path $pfad)) {
md $pfad
move-item "$($i.Directory.Fullname)\$($i.Basename)*" -destination $pfad
}
}