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

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

我怎样才能做到这一点?

你可以:

  • 创build一个名为ls.bat的batch file,并只包含dir命令
  • ls.bat文件所在的目录添加到PATH环境variables中

然后你可以从命令行执行ls

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

 echo dir %1 > %systemroot%\system32\ls.bat 

确保你先运行cmd.exe作为pipe理员,如果你是在Vista和以上

这是一个古老的问题,但logging:

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

给你和更多的东西!

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

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

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

那(应该)的作品!

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

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

  1. 安装Git for Windows
  2. 将Git的bin目录添加到Pathvariables中。 我的位于C:\Program Files\Git\usr\bin
  3. 启动命令提示符并尽情享受ls

如果您的系统上安装了Node.js ,则可以从Cash (我在Windows上为Linux命令编写的库)进行安装:

 npm install cash-ls -g 

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

 mklink ls %System%\dir.exe 

然后设置PATH环境variables以包含刚创build的链接的位置。

如果你不仅仅需要'ls'命令,你应该看看cygwin 。

编辑 – 只是意识到dir.exe不是一个单独的程序,所以这不是真的工作。 但是mklink和cygwin是需要了解的好东西。

如果您只想让cmd将ls识别为dir的别名,则可以使用doskey命令(从超级用户的此答案 )。

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

你也可以使用cygwin ,直接使用ls命令以及其他所有可能用到的unix命令行工具。

我的ls.bat在下面

 @dir %* 

这可以转移cli args

 ls /b ls /w 

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

只要确保你保存与ANSI编码的文件:)

+1上面的postbuild议安装git的窗口和目录bin添加到您的pathvariables。

另一种方法是在Windows 8和Windows 7计算机上运行cmd.exe中的touch,ls和其他许多UNIX命令。

转到以下网站来安装Cygwin

https://www.cygwin.com/install.html

为您的系统安装32位或64位版本。 默认的设置和软件包应该包含你所需要的,所以你一旦进入软件包屏幕就不需要改变任何东西。

安装后,将Cygwin文件夹path复制到您的环境pathvariables。 例如; 如果您将cygwin安装到了C:\ Cygwin中,则会将以下内容添加到您的环境系统pathvariables中:

; C:\ Cygwin的\ BIN

在我的系统上,我安装了64位版本,默认的文件夹名称和path是C:\ cygwin64。 所以我添加了以下到我的系统环境pathvariables:

; C:\ cygwin64 \仓

重新启动您的terminal,如果它是开放的。 然后键入ls,你会看到一个目录列表。

如果您不熟悉设置PATH环境variables,请参阅以下内容:

超级用户链接1

超级用户链接2

我推荐以下配方。

  1. 使用DOSKEY$*来创build你的ls命令。
  2. 通过将其logging在.bat / .cmd文件中,使命令持久化并将该文件的path添加到registry中。

例如,你的命令可能看起来像
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*对于接受参数的命令很有用。 例如,在这里我喜欢能够做到sublime my_code.c

cmd的registry位于HKEY_CURRENT_USER – > Software – > Microsoft – > Command Processor。 用%USERPROFILE%\custom_command.cmd文件的完整path(不是包含的文件夹)创build一个名为AutoRun的string值条目。 然后每次cmd运行,你的命令将被加载!

您也可以将更多有用的东西添加到batch file中。 看到这里的示例模​​板。

当然,ls不会作为批处理的unix命令。 如果您检查%1的-l或-a等等以及它们的所有组合,这将工作…

你可以按照这个指南: https : //gist.github.com/vladikoff/38307908088d58af206b

TL; DR :通过/K path/to/custom/init_cmd.bat到你的“shell启动”命令。

我使用的ConsoleZ作为我的shell包装,所以在我的情况下,我可以find“选项卡”中的设置选项,然后我将shellpath设置为"C:\Windows\System32\cmd.exe "/KC:\cmd_init.bat"" 这样的 。

其中C:\cmd_init.bat是包含我的macros的批处理脚本,这是我会去的:

 @echo off doskey ls=dir /b rem other macro stuff.. 

对不起格式和其他错误,这是我第一次在这里回答。 我希望它有帮助!

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

只需在某处添加ls.exe,并将path添加到path环境variables。