如何在Windows命令提示符下创建ls?

时间:2012-02-20 14:25:18

标签: windows windows-xp cmd ls dir

我想在Windows命令提示符下使用ls并使其运行dir命令。

我该怎么做?

19 个答案:

答案 0 :(得分:218)

您可以使用一个简单的命令解决此问题:

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

如果您使用的是Vista及以上版本,请务必先以管理员身份运行cmd.exe

答案 1 :(得分:114)

你可以:

  • 创建一个名为ls.bat的批处理文件,并使其仅包含dir命令
  • ls.bat文件所在的目录添加到PATH环境变量

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

答案 2 :(得分:33)

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

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

给你ls和更多!

答案 3 :(得分:15)

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

创建一个名为ls.bat的文件,仅包含" dir"。

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

那(应该)有效!

修改:更加一致:https://superuser.com/questions/49170/create-an-alias-in-windows-xp

答案 4 :(得分:15)

我找到的最简单的方法是:

  1. 安装Git for Windows
  2. 将Git的bin目录添加到Path变量中。我的位于C:\Program Files\Git\usr\bin
  3. 启动命令提示符,尽情享受ls

答案 5 :(得分:9)

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

npm install cash-ls -g

答案 6 :(得分:6)

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

mklink ls %System%\dir.exe

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

如果您想要的不仅仅是'ls'命令,那么您应该查看cygwin

编辑 - 刚刚意识到dir.exe不是一个单独的程序,所以这不起作用。但mklink和cygwin是值得了解的好事。

答案 7 :(得分:4)

上面帖子上的

+1建议为windows安装git并将目录bin添加到路径变量中。

我在Windows 8和Windows 7计算机上使用cmd.exe工作的另一种方式是触摸,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环境变量,请参阅以下内容:

Superuser Link 1

Superuser Link 2

答案 8 :(得分:3)

如果您只想让cmd将ls识别为dir的别名,则可以使用doskey命令(来自this answer on superuser)。

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

答案 9 :(得分:3)

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

答案 10 :(得分:3)

我的ls.bat在

之下
@dir %*

可以转移cli args

ls /b
ls /w

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

请确保使用ANSI编码保存文件:)

答案 11 :(得分:2)

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

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

答案 12 :(得分:1)

我推荐以下食谱。

  1. 使用DOSKEY$*创建ls命令。
  2. 通过将命令记录在.bat / .cmd文件中并将该文件的路径添加到注册表来使该命令持久化。
  3. 例如,您的命令可能看起来像是          DOSKEY ls=dir
             DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
    $*对于带参数的命令很有用。例如,在这里我希望能够sublime my_code.c

    cmd的注册表位于HKEY_CURRENT_USER - >软件 - >微软 - >命令处理器。使用文件(不是包含文件夹)的完整路径创建名为AutoRun的字符串值条目,例如%USERPROFILE%\custom_command.cmd。然后每次运行cmd时,都会加载您的命令!

    您也可以向批处理文件中添加更多有用的内容。有关示例模板,请参阅here

答案 13 :(得分:1)

最简单的方法是

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

现在您可以使用ls

答案 14 :(得分:0)

您可以按照本指南操作: https://gist.github.com/vladikoff/38307908088d58af206b

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

我使用ConsoleZ作为我的shell包装器,所以在我的情况下,我可以在" tabs"中找到安装选项,然后我将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..

对不起格式化和其他错误,这是我第一次在这里回答。 我希望它有所帮助!

答案 15 :(得分:0)

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

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

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

答案 16 :(得分:0)

肯定ls不能用作批量的unix命令。如果检查%1是否为-l或-a等以及它们的所有组合,它将起作用......

答案 17 :(得分:0)

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

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

享受=)

答案 18 :(得分:-2)

这是我的C# source code and binary

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