如何在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和以上
我有一个解决scheme,但它很脏:
创build一个名为ls.bat的文件,只包含“dir”。
把它放在C:\ windows \ system32(或PATH env var中的任何目录)。
那(应该)的作品!
编辑:更一致的东西: https : //superuser.com/questions/49170/create-an-alias-in-windows-xp
我发现的最简单的方法是:
- 安装Git for Windows
- 将Git的
bin
目录添加到Pathvariables中。 我的位于C:\Program Files\Git\usr\bin
。 - 启动命令提示符并尽情享受
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
我推荐以下配方。
- 使用
DOSKEY
和$*
来创build你的ls
命令。 - 通过将其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。