Я пытаюсь переместить свои файлы из Win 7 в свой FreeNAS-бокс. Я постоянно получаю ошибки, потому что мой путь слишком длинный, и некоторые файлы не переносятся, потому что в нем есть специальные символы, например, знаки ударения. Некоторые файлы переносятся, но имя файла меняется. Например, "é" -> "_".
Я пытаюсь предотвратить это. Какое программное обеспечение я могу использовать для сканирования указанного каталога на предмет длинных имен путей и имен файлов, содержащих недопустимые символы?
решение1
Этот скрипт PowerShell просканирует папку и выведет на экран все файлы и папки, не содержащие набор символов или превышающие заданную длину:
$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
}
}
Редактировать: теперь проверяется только длина имени файла, а не вся длина пути, измените первое условие if с .Name на .FullName, чтобы вместо этого проверять длину пути.