Ich versuche, meine Dateien von Win 7 auf meine FreeNAS-Box zu verschieben. Ich erhalte ständig Fehler, weil mein Pfad zu lang ist und einige Dateien nicht übertragen werden, weil sie Sonderzeichen wie Akzente enthalten. Einige Dateien werden zwar übertragen, aber der Dateiname ändert sich, z. B. „é“ -> „_“.
Ich versuche, dies zu verhindern. Mit welcher Software kann ich das angegebene Verzeichnis nach langen Pfadnamen und Dateinamen mit ungültigen Zeichen durchsuchen?
Antwort1
Dieses Powershell-Skript scannt einen Ordner und druckt alle Dateien und Ordner, die einen bestimmten Zeichensatz nicht enthalten oder eine bestimmte Länge überschreiten:
$path="Q:\Test";
$length=55;
$legalChars="^([a-z0-9\.\-_ ])+$";
Get-ChildItem $path -recurse | %{
if(($_.Name).length -gt $length)
{
write-host $_.FullName
}
elseif($_.Name -notmatch $legalChars)
{
write-host $_.FullName
}
}
Bearbeiten: Es testet jetzt nur die Länge des Dateinamens, nicht die gesamte Pfadlänge. Ändern Sie die erste If-Bedingung von .Name in .FullName, um stattdessen die Pfadlänge zu testen.