У меня есть сотни файлов с путями длиннее 260 символов, которые я хочу переименовать. Используя Powershell, я могу найти длинные имена, используя cmd /c dir /s /b |? {$_.length -gt 260}
, но фактические командлеты не поддерживают длинные имена файлов: Get-Item возвращает
"не могу найти путь [длинный путь], потому что он не существует"
Я читал, что модуль с именем NTFSSecurity может работать с длинными путями, но до сих пор я знаю, что он может перечислять файлы только с помощью командлета Get-ChildItem2. Я до сих пор не знаю, как на самом деле переименовать файлы таким образом.
Вне Powershell я нашел инструмент под названием TLPD, который может перечислять файлы, но это все.
До сих пор мне удавалось справиться с этим только путем ручного переименования родительских папок, чтобы путь становился достаточно коротким для доступа (возможно, я смогу эмулировать этот процесс с помощью Powershell - но я бы оценил более простой способ)
Изменить: чтобы уточнить, я хотел бы сохранить файлы, а не удалять их как можно больше.