Как запустить команду dir по умолчанию в файловом менеджере FAR?

У меня Cygwin установлен где-то на пути. Так что я

>where dir
D:\Users\Dims\Design\Cygwin64\bin\dir.exe

Когда я бегу DIR от CMD У меня нормальная винда DIR:

>dir /?
Displays a list of files and subdirectories in a directory.

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

...

Но если я запускаю его из-под FAR, занимает DIR от Cygwin:

>dir /?
/usr/bin/dir: cannot access /?: No such file or directory

Так, FAR как-то игнорирует приоритет встроенных команд Windows. Можно ли его снова включить?

1 ответ

dir является внутренней командой cmd.exe, поэтому ее нельзя запускать в других оболочках, включая Windows PowerShell. Там нет отдельного dir.exe

C:\>where dir
INFO: Could not find files for the given pattern(s).

Нет такой вещи, как "Windows dir" или "встроенные команды Windows". В PowerShell dir а также ls псевдонимы Get-ChildItem так что вы получите вывод, как это вместо CMD dir вывод команды

PS C:\> dir


    Directory: C:\


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-r---        3/28/2017  10:13 AM                Program Files
d-r---        3/28/2017  10:13 AM                Program Files (x86)
d-r---         1/3/2017   3:04 PM                User
d-----         4/5/2017  11:14 AM                Windows
               4/5/2017   2:55 PM           8192 ntuser.dat
-a----         4/7/2017   9:45 AM            152 useragent.log

Самый близкий (и единственный способ), который вы могли бы сделать, это звонить cmd сам

cmd /c dir

или же cmd /k dir если вы хотите, чтобы оболочка cmd осталась.

В unix вы можете поставить пробел перед командой, чтобы игнорировать любой установленный псевдоним этой команды. Если такая вещь существует в командной строке Windows, я не знаю, что это такое. Я думаю, ты действительно спрашиваешь об этом.

Ближайшее решение, которое я могу найти, - это использовать &разделитель команд. Например, ECHO & DIR будет работать нормально DIR команда, но она напечатает ECHO is ON.первый. Я не могу вспомнить ни одной команды DOS, у которой нет вывода.

Но если вы столкнулись с этой проблемой, возможно, у вас test.exe в каталоге cygwin/msys/git bash bin, который не имеет вывода, поэтому вы можете обойти его с помощью test & dir.

Или, конечно, вы можете создать пустой командный файл, чтобы поместить его в левую часть & разделитель.

Изменить: на самом деле я играл и DIR & ; работает и не требует никаких внешних команд.

Изменить 2: команда в скобках (DIR)работает. Может быть, это самый короткий путь.

Другие вопросы по тегам