cmder не может запустить Contig с параметрами

cmder не может запустить Contig с параметрами

Я хочу заменить cmd по умолчанию на cmder, но cmder не может запустить Contig для дефрагментации моих часто используемых папок на жестком диске. Команда, Contig.exe -v -s E:\WarThunderкоторая отлично работает на cmd, но она просто выводит меню справки на cmder (типа parse wrong settings).

Как это исправить? Любые идеи приветствуются.

решение1

Contig.exe (из инструментов SysInternal) имеет серьезную ошибку: он не обнаруживает наличие символических ссылок (или соединений каталогов) и смонтированных томов. В некоторых случаях целевой файл (или целевой каталог для соединений направлений) может даже не существовать, и в этом случае он даст сбой, не сумев получить свои экстенты, генерируя дамп в каталоге Crashdump текущего пользователя.

Contig.exe по умолчанию не должен следовать за целью любой символической ссылки, или целью любого соединения каталогов, или целью, если это точка монтирования. Вместо этого он должен просто проанализировать/дефрагментировать ссылку или соединение или саму точку монтирования.

  • Если кто-то хочет проанализировать/дефрагментировать цель символической ссылки или соединения, должна быть дополнительная опция "-f", чтобы включить отслеживание таких перенаправлений. Эта опция должна быть отключена по умолчанию.
  • Если кто-то хочет проанализировать/дефрагментировать цель точки монтирования, должна быть дополнительная опция "-m", чтобы разрешить посещение. Эта опция должна быть отключена по умолчанию.
  • Если параметры "-f" или "-m" используются вместе с "-s" (который рекурсивно проходит по подкаталогам), contig.exe должен отслеживать посещённый путь, сохраняя идентификатор тома и идентификатор файла каждого посещённого каталога, и НИКОГДА не посещать те же узлы повторно (чтобы избежать бесконечных циклов рекурсии в том же посещённом родительском каталоге, уже присутствующем в стеке).

Подобная ошибка была частично решена для инструмента командной строки ATTRIB.EXE (с его опцией "/L", когда он используется с "/S" для рекурсивного обхода подкаталогов), однако она все еще сохраняется, когда в точке монтирования есть смонтированные тома. Для инструмента ICACLS.exe, по-видимому, это обрабатывается правильно (он никогда не посещает цели ссылок, а только саму ссылку), однако у него все еще есть проблема с точками монтирования (к другому тому, возможно, в VHDX, или к другому каталогу текущего тома).

Подобные ошибки влияют на другие инструменты, в частности, на инструменты резервного копирования/восстановления (включая устаревшую функцию резервного копирования «Windows 7», которая все еще присутствует в Windows 8/8.1/10/11 и которая также может некорректно и успешно создавать резервную копию на основе файлов, включая различные символические ссылки или соединения, которые по умолчанию присутствуют в профилях пользователей, но просто помечены устаревшим атрибутом «скрытый» или если они явно не исключены из списка подкаталогов, для которых НЕ нужно выполнять резервное копирование/восстановление).

Windows все еще не полностью протестирована на полную и эффективную корректную поддержку символических ссылок (включая «переходы каталогов» в NTFS). Жесткие ссылки (поддерживаемые в NTFS между файлами/каталогами на одном томе) также могут быть проблемой, когда возможна бесконечная рекурсия. Windows все еще предполагает во многих местах поведение устаревших файловых систем FAT, где любой файл или каталог может быть доступен только по уникальному пути; но давайте помнить, что символические ссылки и точки монтирования (для каталогов) существуют очень давно (они существовали в IBM-DOS, MS-DOS или DR-DOS, а также в различных расширителях DOS, на смонтированных томах FAT или смонтированных сетевых томах, задолго до первых 16-битных выпусков Windows!).

Может быть, такая ошибка Contig.exe (и некоторые его административные привилегии и его внутренняя «проверка лицензии», которая может вывести диалоговое окно с соглашением) может привести к тому, что «cmder» откажется использовать Contig.exe (который не является чисто инструментом командной строки, поскольку он должен иметь возможность использовать рабочий стол Windows, а не только стандартные потоки ввода-вывода)

Связанный контент