Страница 1 из 1

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

Добавлено: Пт мар 18, 2011 11:50
segreich
Вроде примитивный вопрос, но ни в настройках и ни по форуму ответа не нашел.
Есть задача переименовывать файлы. У всех расширение одинаковое и т.к. файлов много, то по запарке можно дважды нажать на F2 и переименовать файл вместе с расширением.
Галка о выделение только имени файла без расширения стоит. Но вопрос имено в случайном двойном нажатии F2, когда выделяется все.
Как бы убрать отображение расширения файла, чтобы его вообще не было возможности трогать при переименовании? Или анриал?

Добавлено: Пт мар 18, 2011 12:21
Avada
segreich
Боюсь, что никак. Такой фичи в TC нет в принципе.

Добавлено: Пт мар 18, 2011 13:52
Flasher
Не лишним было бы напомнить, что F2 по умолчанию обновляет панель. Правильно было бы указать на две внутренние команды TC.

Добавлено: Пт мар 18, 2011 14:29
sa
Можно создать пользовательскую команду с вызовом внутренней команды cm_RenameSingleFile. И на F2 повесить уже вызов этой пользовательской команды.
Двойного срабатывания клавиши в этом случае не будет.

Добавлено: Пт мар 18, 2011 14:59
Flasher
Нет, обе команды сработают аналогично с выделением всего имени при повторном нажатии, если предварительно не выделять файлы, я поэтому и написал о двух, включая cm_RenameOnly.
sa писал(а):пользовательской команды
... только внутренней. Пользовательские - это em_.

Добавлено: Пт мар 18, 2011 18:03
Tol!k
А если скриптом?

Код: Выделить всё

' параметры: %N
Set Args = WScript.Arguments
If Args.Count < 1 Then
  MsgBox "Нужен файл...", vbInformation, "Переименование файла"
  WScript.Quit
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
fName = FSO.GetBaseName(Args(0))
fExt  = FSO.GetExtensionName(Args(0))
newname = InputBox(vbNewLine & vbNewLine & "Новое имя без расширения :", "Переименование файла " & Args(0), fName)
If newname <> "" Then
  newname = newname & "." & fExt
  FSO.MoveFile Args(0), newname
End If

Добавлено: Пт мар 18, 2011 18:16
Flasher
Tol!k
Единственный минус - это окошко, а так - тоже вариант, хоть и не по нашу душу. )

Добавлено: Пт мар 18, 2011 19:31
sa
segreich
Вариант с назначением на F2 пользовательской команды вместо внутренней не подошёл?

Добавлено: Пт мар 18, 2011 19:48
Flasher
sa
Я сперва неправильно понял трактовку решения. Стоило пояснить, что в usercmd.ini нужно создать em_ команду, и в диалоге в поле "Команда" вписать внутреннюю, потом уже переназначать.
А то мне не совсем было ясно из первого поста.

Подтверждаю, что при такой постановке решения дополнительные нажатия горячей клавиши исключают выделение всего имени. Хотя это и не решение прямого вопроса, но, ИМХО, вполне его заменяет.

Добавлено: Пн мар 21, 2011 10:45
segreich
sa писал(а):segreich
Вариант с назначением на F2 пользовательской команды вместо внутренней не подошёл?
Еле вкурил что вы тут понаписали. :)
Сделал, все отлично работает. Самое главное расширение не переименовывается при двойном нажатии. Само отображение расширения файла не принципиально, т.к. на ошибки с переименованием не влияет.
Спасибо!

Делал так: Конфигурация - Настройка - Разное
Выбираем клавишу на которую назначаем команду, нажимаем "лупу", в левом окне выбираем usercmd.ini. Нажимаем "Новая", задаем имя, ОК, нажимаем "лупу", выбираем cm_RenameSingleFile, нажимаем ОК до окна "Настройка", в настройках рядом с значком "лупы" нажимаем значок "Галка" и закрываем меню настроек нажатием ОК. Усё. :)

Добавлено: Пн мар 21, 2011 11:44
sa
segreich писал(а):Само отображение расширения файла не принципиально, т.к. на ошибки с переименованием не влияет.
Ну, и на всякий случай сохраняется возможность отредактировать и расширение.
segreich писал(а):Делал так:
Похоже, что это оптимальный вариант.