
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.131] |
![]() |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Прикр. сообщ.
#1
,
|
|
|
Far Manager
Windows. FreeWare. Многофункциональный файловый менеджер для работы с различными файлами, позволяет просматривать файлы и каталоги, редактировать, копировать и переименовывать файлы. Поддерживает Unicode имеет удобный и простой в использовании пользовательский интерфейс с многоязычной поддержкой. Позволяет работать с архивами, FTP-клиентами, и просматривать сеть с помощью реализованных в стандартную поставку плагинов. Кроме того есть возможность расширения функциональности за счет подключения дополнительных плагинов. ![]() Ну очень странно что его уже давным давно не включили в разделе "Полезного ПО" ![]() Подключаемые модули (плагины) Возможности FAR существенно расширяются благодаря плагинам различного назначения: Домашняя страничка: https://farmanager.com |
![]() |
Сообщ.
#16
,
|
|
В общем, разгадка на поверхности, хотя и не так уж очевидна. CompareString() же выполняет лексикографическое сравнение с учётом национальных предпочтений. Это очевидно. А вот что не так уж, так это то, что '-' ассоциируется с дефисами и тире, в частности переносами, как явными, так и мягкими. Ну и лексикографически они располагаются перед разделителями, типа там пробел, таб итп, т.к. по сравнению с ними должны иметь меньший вес.
Я заглянул в 7-ку, там такое же поведение. Даже поставил XPю на виртуалку и заморочился пакетом её поддержки в Студии, что собрать под неё. И в ней тоже Greater. Осталось только ради интереса чекнуть 98SE, но это VS6 расчехлять... ну так мы тут крутые парни или зумеры ленивые |
![]() |
Сообщ.
#17
,
|
|
В общем, это был непростой процесс. Даже на виртуалке под современными процессорами 98-я не работает должным образом. Пришлось искать патчи. Но это уже был не просто спортивный интерес, это было дело принципа. Нашёл образ, нашёл патчи, нашёл ключ активации, проинсталил, нашёл, как и чем собрать под Win98. Greater. Ну кто б сомневался.
|
Сообщ.
#18
,
|
|
|
Цитата Qraizer @ Частично. Указывая сортировать по расширению, он группирует мои *.txt-файлы, это так. Но далее меня б более чем устроила сортировка по коду символа (в некоем смысле это очевидный порядок), но разрабы зачек-то замутили ещё какой-то смысл в дальнейшем упорядочении. Эх... Так он сортирует по одному указанному критерию. По другим критериям никаких гарантий какого-либо порядка. Тебе же нужно два критерия одновременно. |
![]() |
Сообщ.
#19
,
|
|
Это не разрабы, это правила юникода. Тебе бы понравилось, если файлы с именами из латиницы+кириллицы сортировались на основе хрен пойми чего вместо национальных правил? и заметь, кириллица не обязательно означает русский, как и латиница не обязательно английский, французы с немцами тебе это подтвердят, а уж турки так вообще.
|
Сообщ.
#20
,
|
|
|
Цитата Qraizer @ 1. Хочется пример этого "хрен пойми чего", дабы не на эмоциях рассуждать, а по логике.Тебе бы понравилось, если файлы с именами из латиницы+кириллицы сортировались на основе хрен пойми чего вместо национальных правил? 2. Думаю, что понравилось бы, несмотря на местами встречавшийся порядок "ЁЈАБВ...", т.к. логика абсолютна. |
Сообщ.
#21
,
|
|
|
Хозяйке на заметку: временнЫе штампы
Может кому и пригодиться... Моя шляпа позволяет в начало имени файла или каталога вставлять дату-время. Спросите "зачем это надо". А-б-и-с-ь-н-я-ю! Очень удобно иметь список файлов и каталогов, отсортированных по имени (а по факту по дате-времени) не меняя порядок сортировки в самом ФАРе. Особенно прекрасно это ощущается в каталогах резервных копий - просто душа дятлом поёт!!! Т.е. делаете просто файл или каталог под именем "1", травите на него команду и получаете к примеру "2025.08.19-15.43.56_1". Осталось только при переименовании убрать последних два символа, если нужен просто временной штамп. ⭐ Солюшен 1) В самом ФАРе делаете очередной пункт меню в его меню, вызываемом по [F2], допустим "Вставить временной штамп" 2) В качестве горячей клавиши что угодно, а можно и без нее. А в качестве команды что-то типа C:\Tools\set-timestamp.cmd "!.!", ну или ваш варик В качестве командного файла: ![]() ![]() @echo off SET HOUR=%TIME:~0,2% SET STAMP=%date:~6,4%.%date:~3,2%.%date:~0,2%-%HOUR: =0%.%TIME:~3,2%.%TIME:~6,2% SET FOLDER=%STAMP::=-% SET FILE=%1 SET FILE=%FILE:~1,-1% ren %1 "%FOLDER%_%FILE%" ![]() |
![]() |
Сообщ.
#22
,
|
|
Нужна была подобная функциональность для ведения логов. Никак не смог заставить возвращать секунды.
|
![]() |
Сообщ.
#23
,
|
|
Цитата Qraizer @ Никак не смог заставить возвращать секунды. ?? %TIME% возвращает секунды с точностью до сотых... |
![]() |
Сообщ.
#24
,
|
|
Я ж об этом. Сорри, непонятно выразился. Я использовал что-то типа
![]() ![]() rem Время запуска for /f %%a in ('date /t') do set curdate=%%a for /f %%a in ('time /t') do set curtime=%%a echo: >>> %~dp0runlog.txt echo ----------------------------------------------------------------------------------- >>> %~dp0runlog.txt echo %curdate% %curtime%: run started >>> %~dp0runlog.txt echo ----------------------------------------------------------------------------------- >>> %~dp0runlog.txt |
Сообщ.
#25
,
|
|
|
Хозяйке на заметку: удобочитаемая распечатка PATH
Может кому и пригодиться... Так бывает, что при "задействовании" очередного пакета, требующего изменение системного параметра PATH, уже теряется "понимание" содержимого этой переменной. Ибо путей уже over дохера... Мой солюшен это решает - он позволяет вывести содержимое переменной поэлементно и в столбец. Для этого делаем пункт в меню Фар, вызываемом по [F2], допустим "Смотрим пути". В качестве горячей клавиши что угодно, а можно и без нее. А в качестве команды что-то типа: ![]() ![]() path | E:\Tools\MSys64\usr\bin\sed -e 's/;/\n/g' И получаем что-то типа на выводе в консоль: ![]() ![]() E:\Documents\3.Projects>path | E:\Tools\MSys64\usr\bin\sed -e 's/;/\n/g' C:\Tools\Perl-5.40.0-x64\c\bin C:\Tools\Perl-5.40.0-x64\perl\site\bin C:\Program Files\Common Files\Oracle\Java\javapath C:\Program Files (x86)\VMware\VMware Workstation\bin\ C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler C:\Program Files (x86)\Common Files\Intel\Shared Files\cpp\bin\Intel64 C:\Tools\Python310\ C:\Tools\Python310\Scripts\ C:\Tools\Prolog\bin C:\Tools\ImageMagick C:\Program Files\dotnet\ C:\WINDOWS\system32 C:\WINDOWS C:\WINDOWS\System32\Wbem C:\WINDOWS\System32\WindowsPowerShell\v1.0\ C:\WINDOWS\System32\OpenSSH\ C:\Tools\gs\bin D:\Tools\SDK-Flutter\bin C:\Program Files\Java\jdk-17\bin C:\Program Files\nodejs\ C:\Tools\Git\cmd D:\Tools\Topaz Gigapixel AI\bin\ C:\Program Files\Calibre2\ D:\Tools\OpenServer\bin C:\Users\Majestio\AppData\Local\ValidatorBuddy C:\Users\Majestio\AppData\Local\Microsoft\WindowsApps C:\Users\Majestio\AppData\Roaming\Programs\Zero Install C:\Users\Majestio\AppData\Roaming\npm Одна "беда" - нужно иметь установленным MSYS2. В моём случае в E:\Tools\MSys64 |
![]() |
Сообщ.
#26
,
|
|
У кого его нет:
![]() ![]() @echo off setlocal set var=%path% :onceMore for /f "tokens=1,* delims=;" %%a in ("%var%") do ( echo %%a set var=%%b goto onceMore ) endlocal |