Ich habe den folgenden Code, um alle Dateien einschließlich derjenigen in Unterordnern aus dem Stammordner an neues Ziel zu kopieren, aber ich muss trennen sie in Gruppen und behalten die ursprüngliche Ordnerstruktur.Verschieben Sie alle Dateien aus allen Unterordnern zu neuen Ziel mit gruppenweise gruppenweise in powershell
Wenn ich es ausführen, werde ich eine Fehlermeldung erhalten, dass der angegebene Pfad, Dateiname oder beide zu lang sind. Es sieht so aus, als würde es Dateinamen und Pfade zusammenführen oder so ähnlich. Ich kann nicht herausfinden, wie ich es beheben kann.
Was mache ich falsch?
# Get List Of All Files
$FileList1 = gci $path -recurse
# Remove Last Slash From The Path
$pathnoslash = $path.Substring(0,$path.Length-1)
# Add Escape Slash To The Path For Regex
$regexpath = $pathnoslash -replace "\\", "\\"
# Move All Files From All Folders
For($i=1;$i -le [Math]::Ceiling(($FileList1.count)/$NumberOfFilesPerFolder);$i++){
# Get Directory Names
$newpath = (gci $path -recurse).DirectoryName |
# Replace Source Root Folder By Destination Root Folder
ForEach-Object { $_ -replace "$regexpath", "c:\ZIPPINGFOLDER\$i" }
# Move Files Form Source To Destination
gci $path -recurse -File | Select-Object -First $NumberOfFilesPerFolder |
%{$_.moveto("$newpath\$($_.name)")}
}
'$ _ moveto ("$ newpath \ '- $ newpath ist ein Array, so etwas wie'" c:. \ Zippingfolder \ 1" ," c: \ zippingfolder \ 1 "," c: \ zippingfolder \ 1 "' und so weiter für so viele * Dateien *, wie es in Ihrem ursprünglichen Pfad ist. Und wenn Sie ihn in 'moveto' einfügen, wird er einfach in eine riesige Zeichenfolge zusammengefügt voll von sich wiederholenden Pfaden. "Was mache ich falsch?" - Ich weiß nicht genau, zufälliger Code zusammendrücken und die Finger kreuzen? Ich kann mir nicht vorstellen, dass dieser Code irgendetwas tut, was er will. – TessellatingHeckler
Gut danke für das Aufzeigen Was ist los, hast du auch eine Lösung für mich? –