Mit Copy-Item Verzeichnisse kopieren
Hallo,
ich verwende die folgende Powershell-Anweisung, um 5 Verzeichnisse von C:\Program Files\Microsoft VS Code\ext (im Code-Ausschnitt mit $source bezeichnet) in das servergespeicherte Heimatverzeichnis H:\Visual Studio Code\ext ($dest) zu kopieren. Weil die zu kopierenden Verzeichnisse Unterverzeichnisse enthalten, die ebenfalls Unterverzeichnisse enthalten, verwende ich den Parameter -Recurse.
Ich bekomme daraufhin folgende Fehlermeldung:
Kann sich jemand erklären warum hierbei ein WriteError auftritt?
ich verwende die folgende Powershell-Anweisung, um 5 Verzeichnisse von C:\Program Files\Microsoft VS Code\ext (im Code-Ausschnitt mit $source bezeichnet) in das servergespeicherte Heimatverzeichnis H:\Visual Studio Code\ext ($dest) zu kopieren. Weil die zu kopierenden Verzeichnisse Unterverzeichnisse enthalten, die ebenfalls Unterverzeichnisse enthalten, verwende ich den Parameter -Recurse.
Copy-Item -Path $source -Recurse -Destination $dest -Force
Ich bekomme daraufhin folgende Fehlermeldung:
Copy-Item : Die Zieldatei "H:\Visual Studio Code\ext\ms-dotnettools.csharp-1.23.16\.debugger\pt-BR" ist keine Datei,
sondern ein Verzeichnis.
In C:\Program Files\Microsoft VS Code\script\run.ps1:31 Zeichen:4
+ Copy-Item -Path $source -Recurse -Destination $dest ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.CodeA...r.resources.dll:FileInfo) [Copy-Item], IOException
+ FullyQualifiedErrorId : CopyDirectoryInfoItemIOError,Microsoft.PowerShell.Commands.CopyItemCommand
Kann sich jemand erklären warum hierbei ein WriteError auftritt?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1567861682
Url: https://administrator.de/forum/mit-copy-item-verzeichnisse-kopieren-1567861682.html
Ausgedruckt am: 04.04.2025 um 15:04 Uhr
5 Kommentare
Neuester Kommentar
Moin,
an sich ist dein Copy-Befehl richtig und funktioniert so auch. Auch mit Unterordner. Ich habe eher die Vermutung, dass du bei der Deklaration deiner Variablen $source und $dest ein Fehler eingeschlichen hast, aber (wieso auch immer) enthältst du uns den Teil vor. Fast so als Würde man in die Werkstatt gehen und sagen, dass der Motor komische Geräusche macht und der Mechaniker möge es sich einmal anschauen, und draußen steht dann ein Fahrrad. Was ich meine: warum postest du nicht alles sondern nur den Teil?
Zu deinen Fragen aus dem anderen Topic ():
Gruß
Doskias
an sich ist dein Copy-Befehl richtig und funktioniert so auch. Auch mit Unterordner. Ich habe eher die Vermutung, dass du bei der Deklaration deiner Variablen $source und $dest ein Fehler eingeschlichen hast, aber (wieso auch immer) enthältst du uns den Teil vor. Fast so als Würde man in die Werkstatt gehen und sagen, dass der Motor komische Geräusche macht und der Mechaniker möge es sich einmal anschauen, und draußen steht dann ein Fahrrad. Was ich meine: warum postest du nicht alles sondern nur den Teil?
Zu deinen Fragen aus dem anderen Topic ():
Pfade sind zu lang
Speicherplatz auf H:\ ist zu wenig
Wenn das der Fall ist, so würdest du eigentlich eine andere Meldung erhalten.Speicherplatz auf H:\ ist zu wenig
Gruß
Doskias
So, jetzt ergibt das ganze auch Sinn 
So wie es mir scheint, kommt er mit dem Join-Path nicht ganz zurecht. Die meldung sagt ja deutlich Die Zieldatei "H:\Visual Studio Code\ext\ms-dotnettools.csharp-1.23.16\.debugger\1045" ist keine Datei, sondern ein Verzeichnis.. Hast du dir mal das Ergebnis angeschaut, was dein Skript daraus macht und den Pfad einmal händisch kopiert? An sich ist das Skript nicht schlecht, aber ich persönlich finde, das 68 Zeilen für das kopieren von 5 Verzeichnissen einfach zu viel sind, vor allem weil die Pfade ja nicht wirklich dynamisch sind. Ich wäre fast geneigt einfach 5 copy-item Zeilen stumpf untereinander zu schreiben oder die Pfade wenigstens als simplen Text ohne join-path anzugeben.
Gruß
Doskias
So wie es mir scheint, kommt er mit dem Join-Path nicht ganz zurecht. Die meldung sagt ja deutlich Die Zieldatei "H:\Visual Studio Code\ext\ms-dotnettools.csharp-1.23.16\.debugger\1045" ist keine Datei, sondern ein Verzeichnis.. Hast du dir mal das Ergebnis angeschaut, was dein Skript daraus macht und den Pfad einmal händisch kopiert? An sich ist das Skript nicht schlecht, aber ich persönlich finde, das 68 Zeilen für das kopieren von 5 Verzeichnissen einfach zu viel sind, vor allem weil die Pfade ja nicht wirklich dynamisch sind. Ich wäre fast geneigt einfach 5 copy-item Zeilen stumpf untereinander zu schreiben oder die Pfade wenigstens als simplen Text ohne join-path anzugeben.
Gruß
Doskias