我正在尝试将文件从 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 以测试路径长度。