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


114

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

我怎样才能做到这一点?


4
一些答案很有趣,但是“ dir”命令到底出了什么问题?
马特·唐南

3
@MattDonnan我只是用LS和我做一个有趣的脸,当我把它放在窗口。不再^^
aF。

1
@DavidHeffernan,因为它在Windows中不存在?
aF。

1
当然可以。我每天都使用它。
David Heffernan

1
@aF。我正在使用Windows 7,但是我可以在任何Windows版本上运行ls。我并不是说Windows带有ls,只是它是开源的,并且具有良好的Windows端口,因此在Windows上运行它很简单。看一下GnuWin32。
David Heffernan

Answers:


117

你可以:

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

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


8
为什么不将ls.bat放在system32文件夹中,所以您不必添加PATH
David天宇Wong 2013年

2
@David天宇Wong,很有可能用户可能对该文件夹没有写权限。
hmjd 2013年

2
如果将它与args一起使用,它仍然有效ls dir吗?我认为您需要修改ls.bat来处理args ...,也可以尝试使用别名:superuser.com/questions/49170/create-an-alias-in-windows-xp
nicorellius

我喜欢:@echo off \ ndir / w%1%以接近ls格式
mrcrowl 2015年

极好的答案,对此应该不应该发表评论;-)
Bamboomy

247

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

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

cmd.exe如果您使用的是Vista或更高版本,请确保先以管理员身份运行


14
我希望我可以对此进行不止一次的评分。工作出色。
MrHappyAsthma

4
这样比较好,因为您仍然可以使用dir选项。
2013年

17
我建议dir %*改用允许任何数量的命令行参数通过ls.bat传递到dir。否则,使用dir %1ls脚本时,最多只能使用一个参数。
阿达琳·西蒙尼安

2
@Vartan很遗憾您的评论是“显示更多”阈值以下的第一条。希望有一天@secghost会看到并修改他们的答案。我想补充一点,这样做@dir %*也会删除多余的行,因此它与dir
Captain Man船长

1
@CaptainMan哦,是的!完全忘记了@; 避免输出混乱的漂亮语法。不过,如果Windows兼容POSIX,那就容易得多。至少我们可以梦想。
Adaline Simonian 2015年


18

我发现的最简单方法是:

  1. 安装Windows版Git
  2. binGit目录添加到您的Path变量。我的位于C:\Program Files\Git\usr\bin
  3. 启动命令提示符并享受ls其所有荣耀。

3
很棒的建议,它可以访问的全部功能ls以及所有可选参数。只是稍作更新,我已经为Windows安装了最新版本的git,现在可以在C:\ Program Files \ Git \ usr \ bin中找到ls.exe
phil

是的,或者只是在git文件夹(而不是cmd)中启动bash.exe并享受一个〜complete shell(带ls)。
约翰(Johan)

git bash
令人毛骨悚然


9

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

npm install cash-ls -g

Windows上有史以来针对Linux用户的最佳解决方案 npm install cash-global -g。也可以添加ls -lll(LL)。
user2925656

它是救世主
HebleV '17

6

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

mklink ls %System%\dir.exe

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

如果您不仅需要'ls'命令,还应该研究cygwin

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


+1,我忘了说那是Windows XP,但这对Windows Vista / 7很有用:)
aF。

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环境变量,请参阅以下内容:

超级用户链接1

超级用户链接2


3

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

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


3

您也可以使用cygwin,仅将ls命令与您可能习惯使用的所有其他unix命令行工具一起使用。


3

我的ls.bat低于

@dir %*

可以传输cli args

ls /b
ls /w

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

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


2

我推荐以下食谱。

  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->软件-> Microsoft->命令处理器。使用文件(而不是包含文件夹)的完整路径创建一个名为AutoRun的字符串值条目%USERPROFILE%\custom_command.cmd。然后,每次运行cmd时,都会加载您的命令!

您也可以在批处理文件中添加更多有用的内容。请参阅此处的示例模​​板。


2

为我工作的另一种解决方案是使用UnxUtils,这增加了多个实用程序从可执行文件(包括lssedgrep)。

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


0

ls肯定不能作为批处理的unix命令使用。如果您在%1上检查-l或-a等以及它们的所有组合,则可以使用...


0

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

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

我使用ConsoleZ作为外壳程序包装,因此在我的情况下,我可以在“选项卡”中找到setup选项,然后将外壳程序路径设置为"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..

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


0

使用Windows Linux子系统的人可以ls通过Linux bash 打电话。以下命令ls在System32中创建命令:

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.