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

How to create ls in windows command prompt?

提问人:aF. 提问时间:2/20/2012 最后编辑:aF. 更新时间:11/26/2020 访问量:176761

问:

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

我该怎么做?

Windows-XP CMD LS 目录

评论

4赞 Matt Donnan 2/20/2012
有些答案很有趣,但“dir”命令到底有什么问题?
3赞 aF. 2/20/2012
@MattDonnan我只是习惯了ls,当我在Windows上做时,我会做一个有趣的表情。不再是^^
1赞 aF. 10/30/2013
@DavidHeffernan因为它在 Windows 中不存在?
1赞 David Heffernan 10/30/2013
当然可以。我每天都在使用它。
1赞 David Heffernan 11/5/2013
@aF。我使用的是 Windows 7,但我在任何 Windows 版本上运行 ls。我并不是说 Windows 附带了 ls,只是说它是开源的,并且具有良好的 Windows 端口,在 Windows 上运行它是微不足道的。看看 GnuWin32。

答:

122赞 hmjd 2/20/2012 #1

您可以:

  • 创建一个批处理文件,并使其仅包含命令ls.batdir
  • 将文件所在的目录添加到环境变量中ls.batPATH

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

评论

8赞 David 天宇 Wong 6/25/2013
为什么不把 ls.bat 放在 system32 文件夹中,这样你就不必添加 PATH
2赞 hmjd 6/25/2013
@David天宇Wong,用户很可能没有对该文件夹的写入权限。
2赞 nicorellius 8/31/2013
如果您将其与 args 一起使用,这仍然有效吗: ?我认为您需要修改以处理参数...或者试试别名: superuser.com/questions/49170/create-an-alias-in-windows-xpls dirls.bat
0赞 mrcrowl 4/12/2015
我喜欢: @echo关闭\ndir /w %1% 以更接近 ls 格式
0赞 SanThee 6/11/2017
很好的答案,应该不可能对此发表评论;-)
18赞 STM 2/20/2012 #2

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

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

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

那(应该)有效!

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

7赞 buster 2/20/2012 #3

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

mklink ls %System%\dir.exe

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

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

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

评论

0赞 aF. 2/20/2012
+1,我忘了说那是 Windows XP,但这对 Windows Vista/7 有好处:)
5赞 devio 2/20/2012 #4

如果您只想让 cmd 识别为 的别名,则可以使用命令(来自超级用户的这个答案)。lsdirdoskey

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

3赞 Nerdtron 2/20/2012 #5

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

308赞 secghost 2/24/2013 #6

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

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

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

评论

5赞 ajon 11/12/2013
这更好,因为您仍然可以使用 dir 选项。
0赞 DragonKnight 12/2/2015
当我执行它时,它告诉我在 Windows 10 中拒绝访问。我向我的用户授予了写入权限,但没有工作。有什么想法吗?
0赞 Pierre Poliakoff 12/26/2015
它在 Windows10 中对我有用(但您必须使用具有管理员权限的命令行
1赞 david.barkhuizen 1/1/2016
在使用它时,您可能还需要添加:echo cls %1 > %systemroot%\system32\clear.bat
0赞 D4ITON 3/11/2022
使用 clear comand 代替 clsecho cls > %systemroot%\system32\clear.bat
42赞 sipickles 4/25/2013 #7

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

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

给你ls和更多!

评论

8赞 Pete Kirkham 5/13/2013
+1 并且不要做同样的事情,所以混叠 dir 有点裤子。ls *dir *
3赞 demented hedgehog 5/22/2014
这是最好的答案。忽略投票并执行此操作。
3赞 omikes 4/11/2018
不要忘记添加到您的路径中C:\Program Files (x86)\GnuWin32\bin
5赞 IlPADlI 12/12/2013 #8

我的 ls.bat 在下面

@dir %*

可以传输 CLI 参数

ls /b
ls /w

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

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

-1赞 docowhocool 12/18/2013 #9

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

2赞 Argyll 1/10/2014 #10

我推荐以下食谱。

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

例如,您的命令可能看起来


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

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

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

29赞 varagrawal 11/28/2014 #11

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

  1. 安装适用于 Windows 的 Git
  2. 将 Git 的目录添加到 Path 变量中。我的位于.binC:\Program Files\Git\usr\bin
  3. 启动命令提示符,享受它的所有荣耀。ls

评论

3赞 phil 11/24/2016
很好的建议,可以访问它的全部功能和所有可选参数。只是一个轻微的更新,我已经为Windows安装了最新版本的git,ls.exe现在可以在C:\Program Files\Git\ usr \bin中找到ls
0赞 Johan 10/31/2017
是的,或者只是在 git 文件夹中启动 bash.exe(而不是 cmd)并享受 ~complete shell(使用 ls)。
0赞 omikes 4/11/2018
git bash 很丑陋,我喜欢 path 选项
5赞 jtlindsey 2/18/2015 #12

+1 在上面的帖子中建议安装适用于 Windows 的 git 并将目录 bin 添加到您的路径变量中。

另一种方式是,我在Windows 8和Windows 7机器上使用touch,ls和许多其他UNIX命令在cmd.exe中工作。

转到以下站点以安装 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

9赞 dthree 2/27/2016 #13

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

npm install cash-ls -g

评论

0赞 user2925656 3/14/2017
Windows 上 Linux 用户的最佳解决方案,.添加为(LL)也很棒。npm install cash-global -gls -lll
0赞 jackD 5/17/2017
它是救世主伴侣
-3赞 user3880586 6/3/2017 #14

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

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

评论

0赞 Christopher Schneider 7/20/2017
二进制文件是不必要的。只需使用符号链接或 bat 文件即可。
0赞 Zak 10/5/2022
!!多么复杂的方式..“我需要杀死那只一直困扰我的愚蠢苍蝇。”--“好的,弗兰克,锁上门,把窗户封好,我有一枚虫子炸弹,需要8个小时”
0赞 jred_kai 6/30/2017 #15

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

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

我使用 ConsoleZ 作为我的 shell 包装器,所以就我而言,我可以在“tabs”中找到设置选项,然后我将 shell 路径设置为这样"C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""

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

@echo off

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

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

2赞 Evan 12/20/2017 #16

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

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

1赞 A. Markóczy 7/22/2019 #17

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

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

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

3赞 user14233213 9/14/2020 #18

最简单的方法是

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

现在你可以使用ls

0赞 Bk01 11/26/2020 #19

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

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

享受 =)