我想在Windows命令提示符下使用ls并使其运行dir命令。
我该怎么做?
答案 0 :(得分:218)
您可以使用一个简单的命令解决此问题:
echo @dir %* > %systemroot%\system32\ls.bat
如果您使用的是Vista及以上版本,请务必先以管理员身份运行cmd.exe
答案 1 :(得分:114)
你可以:
ls.bat
的批处理文件,并使其仅包含dir
命令ls.bat
文件所在的目录添加到PATH
环境变量然后,您可以从命令提示符执行ls
。
答案 2 :(得分:33)
答案 3 :(得分:15)
我有一个解决方案,但它很脏:
创建一个名为ls.bat的文件,仅包含" dir"。
将它放在C:\ windows \ system32(或PATH env var中的任何目录)中。
那(应该)有效!
修改:更加一致:https://superuser.com/questions/49170/create-an-alias-in-windows-xp
答案 4 :(得分:15)
我找到的最简单的方法是:
bin
目录添加到Path变量中。我的位于C:\Program Files\Git\usr\bin
。ls
。答案 5 :(得分:9)
答案 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环境变量,请参阅以下内容:
答案 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,它会从可执行文件中添加多个实用程序(包括ls
,sed
和grep
)。
使用:下载source code。解压缩。将UnxUtils\usr\local\wbin
路径添加到Windows PATH变量。启动一个新的CMD实例。
答案 12 :(得分:1)
我推荐以下食谱。
DOSKEY
和$*
创建ls
命令。 例如,您的命令可能看起来像是
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)
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)