Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Как найти файлы, путь к которым превышает 256 символов?

Автор: WolfSkull1
Дата сообщения: 18.08.2010 21:40
Как найти в выбранной папке все файлы, путь к которым превышает 256 символов?

Может программа какая есть? Нужно что бы программы выдала именно список таких файлов, переименовывать планируется вручную.

Папок много, файлов много, это нужно сделать перед переброской папок в другое место. В общем нужно как описал выше.
Автор: BVV63
Дата сообщения: 19.08.2010 07:09
WolfSkull1
Вы уверены, что вам нужен путь? Ограничение ведь на полное имя файла (путь + имя).
Ну такое, половинчатое решение. Выполните такую команду:

Код: For /F "Tokens=* UseBackQ" %%0 In (`Dir "Раздел\*.*" /A-D /B /O:N /S`) Do Echo %~F0>>"Файл"
Автор: BVV63
Дата сообщения: 20.08.2010 11:21
WolfSkull1
Если ещё актуально. При помощи здешних батнописцев состряпал такой код:

Код: ChDir .>C:\1.Txt
For /F "Tokens=* UseBackQ" %%0 In (`Dir "E:\*.*" /A-D /B /O:N /S`) Do Call :0 "%%~0"
Exit
:0
Set Count=0
Set Var=%~1
:1
Set Var=%Var:~0,-1%
Set /A Count+=1
If "%Var%" NEq "" GoTo :1
If %Count% Gtr 256 1>>C:\1.Txt Echo %~F1
Exit /B
Автор: vvsco
Дата сообщения: 26.09.2012 03:36
BVV63

Цитата:
И впридачу с длиннющими именами . Очень долго будет работать, может сутки.

Конечно долго! Я в ужасе (если не сказать конкретнее)!
А все потому, что задача была

Цитата:
Как найти в выбранной папке все файлы, путь к которым превышает 256 символов?

а в вашем решении зачем-то сначала скурпулезно находятся длины имен всех файлов, и только потом - само решение.
Вот так будет попроще, ну и значительно быстрее:

Код: Set tDir=I:\Data
Set MaxLen=256

SetLocal EnableDelayedExpansion

For /F "Tokens=* UseBackQ" %%i In (`Dir "%tDir%\*.*" /A-D /B /O:N /S`) Do (
    Set iStr=%%i
    Set iStr=!iStr:~%MaxLen%!
    If NOT [!iStr!]==[] (
        Echo "%%i">>%OutFile%
    )
)
Автор: karbiztropandus
Дата сообщения: 16.08.2015 13:26
ставите сборку total commander ultima prime (free) САЙТ tcup.pl
в нем кнопку поиск, в нем поставив путь для поиска, и во вкладке ПЛАГИНЫ выбираете = FILEX, СВОЙСТВО = ДЛИНА ПОЛНОГО ПУТИ, ОПЕРАЦИЯ = >, ЗНАЧЕНИЕ = 255 И НАЖИМАЕТЕ ИСКАТЬ.
КОГДА НАЙДЕТ НАЖИМАЕТЕ НАПРИМЕР = ВСЕ НА ПАНЕЛЬ И МОЖЕТЕ ДЕЛАТЬ С НИМИ ГРУППОВЫЕ ОПЕРАЦИИ ИЛИ ПООДИНОЧНЫЕ (ВЫРЕЗАТЬ, УДАЛИТЬ, ПЕРЕИМЕНОВАТЬ И ТД)
ВСЕ ПОНЯТНО И БЫСТРО.
Автор: Boris Smirnov
Дата сообщения: 17.08.2015 14:57
karbiztropandus

Не обязательно сборка Ultima Prime - лишь бы был плагин filex установлен.

А вот теперь самое интересное. Хотелось бы после сброса всех таких файлов с полным путем выше 255 во временную панель переименовать их.

И переименовать их таким образом, чтобы полный путь был менее 255 символов за счет обрезки крайних правых символов в имени. Как это сделать?

В справке TC нашел вариант обрезки только имени файла - [N1-255]. А как обрезать имя с учетом полного пути к нему?

Пробовал также вариант переименования: Name: [1-253] Extension: [E]

Но TC сообщает, что не может переименовать файлы. Создается ощущение, что TC не может переименовывать файлы по Ctrl-M. если длина полного пути к ним больше 255 символов. Это так? И как быть?

Наверно можно было бы и сторонними программами переименования воспользоваться, но тогда описания файлов из descript.ion потеряются.

Страницы: 1

Предыдущая тема: Не отображаются значки(иконки) у EXE файлов


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.