122

我想在 windows 命令提示符下使用 ls 并让它运行 dir 命令。

我怎样才能做到这一点?

4

19 回答 19

283

你可以用一个简单的命令来解决这个问题:

echo @dir %* > %systemroot%\system32\ls.bat

cmd.exe如果您在 vista 及更高版本上,请确保首先以管理员身份运行

于 2013-02-23T17:35:49.363 回答
122

你可以:

  • 创建一个名为的批处理文件ls.bat并让它dir只包含命令
  • ls.bat文件所在的目录添加到您的PATH环境变量中

然后,您可以ls从命令提示符处执行。

于 2012-02-20T14:32:38.790 回答
41

这是一个老问题,但记录在案:

http://gnuwin32.sourceforge.net/packages/coreutils.htm

给你 ls 和更多!

于 2013-04-25T08:35:00.037 回答
24

我发现的最简单的方法是:

  1. 为 Windows安装Git
  2. bin将Git的目录添加到您的 Path 变量中。我的位于C:\Program Files\Git\usr\bin.
  3. 启动命令提示符并享受ls它的所有荣耀。
于 2014-11-28T13:30:25.370 回答
17

我有一个解决方案,但它很脏:

创建一个名为 ls.bat 的文件,其中只包含“dir”。

将它放在 C:\windows\system32(或 PATH env var 中的任何目录)中。

那(应该)有效!

编辑:更一致的东西:https ://superuser.com/questions/49170/create-an-alias-in-windows-xp

于 2012-02-20T14:32:47.733 回答
9

如果您的系统上安装了Node.js,您可以从Cash安装它,这是我为 Windows 上的 Linux 命令编写的库:

npm install cash-ls -g
于 2016-02-27T02:58:28.590 回答
6

Vista/7 的 Windows 命令提示符将允许 NTFS 符号链接,然后以管理员身份运行 cmd.exe:

mklink ls %System%\dir.exe

然后设置您的 PATH 环境变量以包含您刚刚创建的链接的位置。

如果您想要的不仅仅是“ls”命令,您应该查看cygwin

编辑-刚刚意识到dir.exe不是一个单独的程序,所以这实际上不起作用。但是mklinkcygwin 是值得了解的好东西。

于 2012-02-20T14:34:21.420 回答
4

如果您只想让 cmd 识别ls为 的别名dir,则可以使用该doskey命令(来自superuser 上的此答案)。

这不会改变 dir 命令的原始命令行参数处理。

于 2012-02-20T14:34:39.087 回答
4

上面帖子中的 +1 建议安装 git for windows 并将目录 bin 添加到路径变量中。

我在 Windows 8 和 Windows 7 机器上的 cmd.exe 中获得 touch、ls 和许多其他 UNIX 命令的另一种方式。

转到以下站点安装 Cygwin

https://www.cygwin.com/install.html

为您的系统安装 32 位或 64 位版本。默认设置和软件包应包含您需要的内容,因此您无需在进入软件包屏幕后进行任何更改。

安装后,将 Cygwin 文件夹路径复制到您的环境路径变量中。例如; 如果您将 cygwin 安装到 C:\Cygwin,您将在您的环境系统路径变量中添加以下内容:

;C:\Cygwin\bin

在我的系统上,我安装了 64 位版本,默认文件夹名称和路径是 C:\cygwin64。所以我在我的系统环境路径变量中添加了以下内容:

;C:\cygwin64\bin

如果终端打开,请重新启动它。然后输入 ls 你会看到一个目录列表。

如果您不熟悉设置 PATH 环境变量,请参阅以下内容:

超级用户链接 1

超级用户链接 2

于 2015-02-18T05:53:06.433 回答
3

您也可以使用cygwin,直接使用 ls 命令以及您可能习惯的所有其他 unix 命令行工具。

于 2012-02-20T14:43:40.330 回答
3

我的 ls.bat 在下面

@dir %*

可以传输cli args

ls /b
ls /w

将它放在 %windir% 或 %PATH% 变量中的任何目录中。

只需确保使用 ANSI 编码保存文件即可:)

于 2013-12-12T04:01:04.727 回答
3

我推荐以下食谱。

  1. 使用DOSKEY$*创建您的ls命令。
  2. 通过将命令记录在 .bat/.cmd 文件中来使命令持久化,并将文件的路径添加到注册表。

例如,您的命令可能看起来
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*对带有参数的命令很有用。例如,在这里我喜欢能够做到sublime my_code.c

cmd 的注册表位于 HKEY_CURRENT_USER -> Software -> Microsoft -> Command Processor。创建一个名为 AutoRun 的字符串值条目,其中包含文件的完整路径(不是包含文件夹),例如%USERPROFILE%\custom_command.cmd. 然后每次运行 cmd 时,都会加载你的命令!

您也可以在批处理文件中添加更多有用的东西。有关示例模板,请参见此处。

于 2014-01-10T09:57:26.007 回答
3

另一个对我有用的解决方案是使用UnxUtils,它从可执行文件(包括 、 和 )中添加多个ls实用sed程序grep

使用方法:下载源代码。解压缩。将UnxUtils\usr\local\wbin路径添加到 Windows PATH 变量。启动一个新的 CMD 实例。

于 2017-12-19T17:40:11.750 回答
2

最简单的方法是

  • 安装 git
  • 添加C:\Program Files\Git\usr\bin到您的路径变量

现在你可以使用ls

于 2020-09-14T13:15:36.497 回答
0

当然 ls 不能作为批处理的 unix 命令工作。如果您检查 %1 的 -l 或 -a 等以及它们的所有组合,它将起作用...

于 2013-12-17T16:10:07.303 回答
0

您可以遵循本指南: https ://gist.github.com/vladikoff/38307908088d58af206b

TL;DR:传递/K path/to/custom/init_cmd.bat给您的“shell 启动”命令。

我使用 ConsoleZ 作为我的 shell 包装器,所以在我的情况下,我可以在“选项卡”中找到设置选项,然后我将 shell 路径设置为"C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat"" like this

包含我的宏的批处理脚本在哪里C:\cmd_init.bat,这就是我想要的:

@echo off

doskey ls=dir /b
rem other macro stuff..

抱歉格式和其他错误,这是我第一次在这里回答。我希望它有帮助!

于 2017-06-30T15:24:28.660 回答
0

使用 Linux 子系统 for Windows 的人可以ls从 Linux bash 调用。以下命令ls在 System32 中创建命令:

echo @bash -c "ls %*" > %systemroot%\system32\ls.bat

(必须先启用/安装 Linux 子系统功能)

于 2019-07-22T12:05:06.227 回答
0

doskey使用密钥在 .bat 或 .cmd 文件中创建别名:

@echo off
title "ls command cmd bar"
doskey ls=echo off $T dir $* $T echo on

享受 =)

于 2020-11-25T21:07:01.973 回答
-2

这是我的C# 源代码和二进制文件

只需在某处添加 ls.exe 并将路径添加到路径环境变量。

于 2017-06-02T18:48:49.267 回答