Jump to content

ed_22

Members
  • Gesamte Inhalte

    8
  • Registriert seit

  • Letzter Besuch

Fortschritt von ed_22

Apprentice

Apprentice (3/14)

  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei

Neueste Abzeichen

0

Reputation in der Community

1

Beste Lösungen

  1. Hausaufgabe in Arbeit: Unterschied Hochkomma und Anführungszeichen in PowerShell - www.itnator.net
  2. Hallo zusammen und Danke für die Hilfe. Ich habe den Fehler gefunden. $StartFolder = 'D:\Test' #Dateien einlesen und splitten Get-ChildItem $StartFolder\*-*-*-* -File | ForEach-Object { $CD,$Titel,$Track = $_.Name -split ' - ',3 # Aus den gesplitteten Teilen Ordner erstelln $Path="$StartFolder\$CD-$Titel" if (!(Test-Path $Path)) {New-Item -Path $Path -ItemType Directory} #New-Item -Path $StartFolder\$CD-$Titel -ItemType Directory # Die entsprechenden Dateien in die richtigen Ordner kopieren (geht nicht) #$Name="$StartFolder\$CD-$Titel-$Track" move-Item -Path $_.FullName -Destination $Path } Powershell hat an $Path ein Leerzeichen angehängt. Ich habe ihm beim Split gesagt das er bei '-' trennen soll. Dabei hat er das Leerzeichen vor dem - mit in die Variable genommen. Beim erstellen der Ordner hat ihn das nicht gestört erst als der move Befehl gekommen ist. Da hat er das Verzeichnis nicht mehr gefunden. Ich habe das bei dem Split Befehl jetzt in '- ' geändert und jetzt funktioniert auch alles. Es lag also nicht an den Hochkommas. Mfg Thorsten
  3. Ich mache ja alles was du willst aber du meinst jetzt "Anführungsstriche oben". Vorher hast du nichts von doppelten Hochkommas gesagt. Aber geht auch nicht. move-Item -Path "$_.FullName" -Destination "$Path" Fehlermeldung: move-Item : Der Pfad "D:\Test\087 - Wolfsgesicht - 06 - Der Wolf zeigt seine Krallen.mp3.FullName" kann nicht gefunden werden, da er nicht vorhanden ist. In D:\Test\test 2.ps1:16 Zeichen:4 + move-Item -Path "$_.FullName" -Destination "$Path" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (D:\Test\087 - W...en.mp3.FullName:String) [Move-Item], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.MoveItemCommand
  4. Ich hatte das schon probiert aber es hat nicht funktioniert deshalb meine nachfrage. Er löst dann die Variable nicht auf. Einmal für dich zum verdeutlichen was ich gemacht habe und welcher Fehler dann kommt: move-Item -Path '$_.FullName' -Destination '$Path' Fehlermeldung: move-Item : Der Pfad "D:\Test\$_.FullName" kann nicht gefunden werden, da er nicht vorhanden ist. In D:\Test\test 2.ps1:16 Zeichen:4 + move-Item -Path '$_.FullName' -Destination '$Path' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (D:\Test\$_.FullName:String) [Move-Item], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.MoveItemCommand
  5. Ich habe das Skript jetzt so. Wo muss ich da die Hochkomma setzen? $StartFolder = 'D:\Test' #Dateien einlesen und splitten Get-ChildItem $StartFolder\*-*-*-* -File | ForEach-Object { $CD,$Titel,$Track = $_.Name -split '-',3 # Aus den gesplitteten Teilen Ordner erstelln $Path="$StartFolder\$CD-$Titel" if (!(Test-Path $Path)) {New-Item -Path $Path -ItemType Directory} #New-Item -Path $StartFolder\$CD-$Titel -ItemType Directory # Die entsprechenden Dateien in die richtigen Ordner kopieren (geht nicht) #$Name="$StartFolder\$CD-$Titel-$Track" move-Item -Path $_.FullName -Destination $Path }
  6. Hallo, ich habe das gerade mal das Skript geändert und $_.FullName als Variable eingetragen. Es funktioniert leider nicht. Ich bekomme folgende Fehlermeldung: move-Item : Falscher Parameter. In D:\Test\test 2.ps1:16 Zeichen:4 + move-Item -Path $_.FullName -Destination $Path + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (D:\Test\108 - D...8 - Soo-Ann.mp3:FileInfo) [Move-Item], IOException + FullyQualifiedErrorId : MoveFileInfoItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand Der Ordner wurde erstellt z.B.: D:\Test\108 - Die sieben Tore die Variable $Path gibt folgendes aus: PS D:\Test> echo $Path D:\Test\108 - Die sieben Tore Was kann das noch sein? Mfg Thorsten
  7. Hallo, ich setze die Variable doch vorher mit $Name="$StartFolder\$CD-$Titel-$Track" oder ist das nicht richtig? Woher bekommt Powershell denn $_.FullName b.z.w. was bedeutet das? Da hast du recht. Daher habe ich mir ja auch bisher die Infos gezogen komme jetzt aber beim move nicht weiter
  8. Hallo zusammen, ich habe mich ein wenig in Powershell versucht. Ich möchte aus einem Verzeichnis die Dateien auslesen und anhand des Dateinamens Ordner erstellen. Danach sollen die Dateien die am Anfang so heißen wie der Ordner in diesen kopiert werden. Die Ordner werden erstellt aber die Dateien nicht kopiert. Es sind Hörspiele (mp3) die immer mit 045 - das Hoerspiel - 02 - das Kapitel.mp3 benannt sind. Es geht immer um die ersten beiden Angaben. 045 - das Hoerspiel heißt dann der Ordner und alle Dateien die so Anfangen sollen da rein kopiert werden. Könnt ihr mir da auf die Sprünge helfen? $StartFolder = 'D:\Test' #Dateien einlesen und splitten Get-ChildItem $StartFolder\*-*-*-* -File | ForEach-Object { $CD,$Titel,$Track = $_.Name -split '-',3 # Aus den gesplitteten Teilen Ordner erstelln $Path="$StartFolder\$CD-$Titel" if (!(Test-Path $Path)) {New-Item -Path $Path -ItemType Directory} #New-Item -Path $StartFolder\$CD-$Titel -ItemType Directory # Die entsprechenden Dateien in die richtigen Ordner kopieren (geht nicht) $Name="$StartFolder\$CD-$Titel-$Track" move-Item -Path $Name -Destination $Path } Besten Dank Thorsten PS: Es kommt immer folgende Fehlermeldung: move-Item : Falscher Parameter. In D:\Test\test 2.ps1:16 Zeichen:4 + move-Item -Path $Name -Destination $Path + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (D:\Test\108 - D...8 - Soo-Ann.mp3:FileInfo) [Move-Item], IOException + FullyQualifiedErrorId : MoveFileInfoItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand
×
×
  • Neu erstellen...