我想在 windows 命令提示符下使用 ls 并让它运行 dir 命令。
我怎样才能做到这一点?
你可以用一个简单的命令来解决这个问题:
echo @dir %* > %systemroot%\system32\ls.bat
cmd.exe
如果您在 vista 及更高版本上,请确保首先以管理员身份运行
你可以:
ls.bat
并让它dir
只包含命令ls.bat
文件所在的目录添加到您的PATH
环境变量中然后,您可以ls
从命令提示符处执行。
我发现的最简单的方法是:
bin
将Git的目录添加到您的 Path 变量中。我的位于C:\Program Files\Git\usr\bin
.ls
它的所有荣耀。我有一个解决方案,但它很脏:
创建一个名为 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 是值得了解的好东西。
如果您只想让 cmd 识别ls
为 的别名dir
,则可以使用该doskey
命令(来自superuser 上的此答案)。
这不会改变 dir 命令的原始命令行参数处理。
上面帖子中的 +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 环境变量,请参阅以下内容:
您也可以使用cygwin,直接使用 ls 命令以及您可能习惯的所有其他 unix 命令行工具。
我的 ls.bat 在下面
@dir %*
可以传输cli args
ls /b
ls /w
将它放在 %windir% 或 %PATH% 变量中的任何目录中。
只需确保使用 ANSI 编码保存文件即可:)
我推荐以下食谱。
DOSKEY
和$*
创建您的ls
命令。例如,您的命令可能看起来
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 时,都会加载你的命令!
您也可以在批处理文件中添加更多有用的东西。有关示例模板,请参见此处。
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 的人可以ls
从 Linux bash 调用。以下命令ls
在 System32 中创建命令:
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
享受 =)