如何在 FAR 文件管理器下运行默认 dir 命令?

如何在 FAR 文件管理器下运行默认 dir 命令?

我在路径的某个地方安装了 Cygwin。所以我有

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

当我DIR从运行时CMD,我得到了正常的 Windows 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 的,因此你无法在任何其他 shell 中运行它包括 Windows PowerShell。没有单独的dir.exe

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

没有这样的事情“Windows 目录”或者“内置 Windows 命令”. 在 PowerShell 中,dirlsGet-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 shell。

答案2

在 unix 中,您可以在命令前放置一个空格,以忽略设置的该命令的任何别名。如果 Windows 命令提示符中存在这样的情况,我不知道它是什么。我认为这才是你真正想问的。

我能找到的最接近的修复方法是使用&命令分隔符。例如,ECHO & DIR将运行正常DIR命令,但它会ECHO is ON.先打印。我想不出任何没有输出的 DOS 命令。

但是如果您遇到了这个问题,您可能test.exe在 cygwin/msys/git bash bin 目录中有一个命令,它没有输出,因此您可以使用它来解决它test & dir

或者,当然,您可以创建一个空的批处理文件,放在分隔符的左侧&

编辑:实际上,我只是玩了一下,并且DIR & ;可以工作,并且不需要任何外部命令。

编辑2:括号中的命令(DIR)有效。也许这是最短的命令。

相关内容