我想在 windows 命令提示符下使用 ls 并让它运行 dir 命令。
我怎样才能做到这一点?
你可以用一个简单的命令来解决这个问题:
echo @dir %* > %systemroot%\system32\ls.bat
如果您使用的是 vista 及更高版本,请确保首先以管理员身份运行 cmd.exe
你可以:
创建一个名为 ls.bat 的批处理文件并让它只包含 dir 命令
将 ls.bat 文件所在的目录添加到 PATH 环境变量中
然后,您可以从命令提示符执行 ls
。
ls dir
一起使用,这仍然有效吗?我认为您需要修改 ls.bat
来处理 args...或者您可以尝试使用别名:superuser.com/questions/49170/create-an-alias-in-windows-xp
这是一个老问题,但记录在案:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
给你 ls 和更多!
ls *
和 dir *
不做同样的事情,所以别名 dir 有点裤子。
C:\Program Files (x86)\GnuWin32\bin
添加到您的路径
我发现的最简单的方法是:
安装 Git for Windows 将 Git 的 bin 目录添加到您的 Path 变量中。我的位于 C:\Program Files\Git\usr\bin 中。启动命令提示符并享受 ls 的所有荣耀。
ls
的全部功能及其所有可选参数。只是一个小小的更新,我已经安装了最新版本的 git for windows 并且 ls.exe 现在可以在 C:\Program Files\Git\ usr \bin 中找到
我有一个解决方案,但它很脏:
创建一个名为 ls.bat 的文件,其中只包含“dir”。
将它放在 C:\windows\system32(或 PATH env var 中的任何目录)中。
那(应该)有效!
编辑:更一致的东西:https://superuser.com/questions/49170/create-an-alias-in-windows-xp
Vista/7 的 Windows 命令提示符将允许 NTFS 符号链接,然后以管理员身份运行 cmd.exe:
mklink ls %System%\dir.exe
然后设置您的 PATH 环境变量以包含您刚刚创建的链接的位置。
如果您想要的不仅仅是“ls”命令,您应该查看 cygwin。
编辑 - 刚刚意识到 dir.exe
不是一个单独的程序,所以这实际上不起作用。但是 mklink
和 cygwin 是值得了解的好东西。
我的 ls.bat 在下面
@dir %*
可以传输cli args
ls /b
ls /w
将它放在 %windir% 或 %PATH% 变量中的任何目录中。
只需确保使用 ANSI 编码保存文件即可:)
上面帖子中的 +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 环境变量,请参阅以下内容:
我推荐以下食谱。
使用 DOSKEY 和 $* 创建你的 ls 命令。通过将命令记录在 .bat/.cmd 文件中来使命令持久化,并将文件的路径添加到注册表。
例如,您的命令可能看起来像
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。
另一个对我有用的解决方案是使用 UnxUtils,它从可执行文件(包括 ls
、sed
和 grep
)中添加多个实用程序。
要使用:下载 source code。解压缩。将 UnxUtils\usr\local\wbin
路径添加到 Windows PATH 变量。启动一个新的 CMD 实例。
最简单的方法是
安装 git
将 C:\Program Files\Git\usr\bin 添加到路径变量
现在您可以使用 ls
当然 ls 不能作为批处理的 unix 命令工作。如果您检查 %1 的 -l 或 -a 等以及它们的所有组合,它将起作用...
您可以遵循本指南: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..
抱歉格式和其他错误,这是我第一次在这里回答。我希望它有帮助!
使用 Linux 子系统 for Windows 的人可以从 Linux bash 调用 ls
。以下命令在 System32 中创建 ls
命令:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(必须先启用/安装 Linux 子系统功能)
使用 doskey
键在 .bat 或 .cmd 文件中创建别名:
@echo off
title "ls command cmd bar"
doskey ls=echo off $T dir $* $T echo on
享受 =)
这是我的C# source code and binary。
只需在某处添加 ls.exe 并将路径添加到路径环境变量。
https://i.stack.imgur.com/5wVcu.png
dir %*
来允许通过 ls.bat 将任意数量的命令行参数传递给 dir。否则,使用dir %1
,在使用 ls 脚本时最多只能使用一个参数。@dir %*
也会删除多余的行,因此它与dir
更加相同@
;使用漂亮的语法来避免输出混乱。不过,如果 Windows 符合 POSIX 标准,那就容易多了。至少我们可以做梦。