Tôi muốn sử dụng ls trong dấu nhắc lệnh của windows và làm cho nó chạy lệnh dir.
Làm thế nào tôi có thể làm điều đó?
Tôi muốn sử dụng ls trong dấu nhắc lệnh của windows và làm cho nó chạy lệnh dir.
Làm thế nào tôi có thể làm điều đó?
Câu trả lời:
Bạn có thể:
ls.bat
và chỉ chứa dir
lệnhls.bat
tệp tồn tại vào PATH
biến môi trường của bạnSau đó, bạn có thể thực thi ls
từ một dấu nhắc lệnh.
ls dir
:? Tôi nghĩ rằng bạn sẽ cần phải sửa đổi ls.bat
để xử lý args ... hoặc bạn có thể thử bí danh: superuser.com/questions/49170/create-an-alias-in-windows-xp
Bạn có thể giải quyết câu hỏi này bằng một lệnh đơn giản:
echo @dir %* > %systemroot%\system32\ls.bat
Đảm bảo bạn chạy cmd.exe
với tư cách quản trị viên trước tiên nếu bạn đang ở trên vista trở lên
dir %*
Thay vào đó, tôi khuyên bạn nên sử dụng để cho phép bất kỳ số lượng đối số dòng lệnh nào được chuyển đến dir đến ls.bat. Nếu không, bằng cách sử dụng dir %1
, tối đa bạn chỉ có thể sử dụng một đối số khi sử dụng tập lệnh ls.
@dir %*
đó cũng sẽ loại bỏ dòng thừa để nó thậm chí còn giống vớidir
@
; bit cú pháp tiện lợi để sử dụng để tránh một mớ hỗn độn đầu ra. Mặc dù vậy, sẽ dễ dàng hơn rất nhiều nếu Windows tương thích với POSIX. Ít nhất chúng ta có thể mơ ước.
Đó là một câu hỏi cũ nhưng cho kỷ lục:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Cung cấp cho bạn ls và nhiều hơn nữa!
ls *
và dir *
đừng làm điều tương tự, vì vậy dir răng cưa là một chiếc quần dài.
C:\Program Files (x86)\GnuWin32\bin
vào đường dẫn của bạn
Cách dễ nhất mà tôi đã tìm thấy là:
bin
thư mục của Git vào biến Path của bạn. Của tôi được đặt tại C:\Program Files\Git\usr\bin
.ls
tất cả vinh quang của nó.ls
và tất cả các đối số tùy chọn của nó. Chỉ cần một bản cập nhật nhỏ, tôi đã cài đặt phiên bản mới nhất của git cho các cửa sổ và các ls.exe bây giờ có thể được tìm thấy trong C: \ Program Files \ Git \ usr \ bin
Tôi có một giải pháp nhưng nó bẩn:
Tạo một tệp có tên ls.bat chỉ chứa "dir".
Đặt nó vào C: \ windows \ system32 (hoặc bất kỳ thư mục nào trong PATH env var).
Điều đó (nên) hoạt động!
Chỉnh sửa: Một cái gì đó nhất quán hơn: /superuser/49170/create-an-alias-in-windows-xp
Nếu bạn đã cài đặt Node.js trên hệ thống của mình, bạn có thể cài đặt nó từ Cash , một thư viện mà tôi đã viết cho các lệnh Linux trên Windows:
npm install cash-ls -g
npm install cash-global -g
. Cũng sẽ rất tuyệt nếu thêm ls -l
vào dưới dạng ll
(LL).
Dấu nhắc lệnh Windows cho Vista / 7 sẽ cho phép các liên kết tượng trưng NTFS, chạy cmd.exe với tư cách quản trị viên, sau đó:
mklink ls %System%\dir.exe
Sau đó, thiết lập biến môi trường PATH của bạn để bao gồm vị trí của liên kết bạn vừa tạo.
Nếu bạn muốn nhiều hơn chỉ lệnh 'ls', bạn nên xem xét cygwin .
EDIT- Chỉ cần nhận ra dir.exe
không phải là một chương trình riêng biệt, vì vậy điều này không thực sự hoạt động. Nhưng mklink
và cygwin là những điều tốt cần biết.
+1 trên bài đăng ở trên đề xuất cài đặt git cho windows và thêm bin thư mục vào các biến đường dẫn của bạn.
Một cách khác, tôi có touch, ls và rất nhiều lệnh UNIX khác hoạt động trong cmd.exe trên máy Windows 8 và Windows 7 của tôi.
Vào trang web sau để cài đặt Cygwin
https://www.cygwin.com/install.html
Cài đặt phiên bản 32 hoặc 64 bit cho hệ thống của bạn. Các gói và cài đặt mặc định phải bao gồm những gì bạn cần để bạn không phải thay đổi bất cứ điều gì khi vào màn hình gói.
Sau khi cài đặt, sao chép đường dẫn thư mục Cygwin vào các biến đường dẫn môi trường của bạn. Ví dụ; nếu bạn đã cài đặt cygwin vào C: \ Cygwin, bạn sẽ thêm phần sau vào các biến đường dẫn hệ thống môi trường của mình:
; C: \ Cygwin \ bin
Trên hệ thống của mình, tôi đã cài đặt phiên bản 64bit và tên thư mục và đường dẫn mặc định là C: \ cygwin64. Vì vậy, tôi đã thêm phần sau vào các biến đường dẫn môi trường hệ thống của mình:
; C: \ cygwin64 \ bin
Khởi động lại thiết bị đầu cuối của bạn nếu nó đang mở. Sau đó gõ ls và bạn sẽ thấy danh sách thư mục.
Xem phần sau nếu bạn không quen với việc đặt các biến môi trường PATH:
Nếu bạn chỉ muốn cmd nhận ls
dạng là bí danh dir
, bạn có thể sử dụng doskey
lệnh (từ câu trả lời này trên superuser ).
Điều này không thay đổi cách xử lý tham số dòng lệnh ban đầu của lệnh dir.
Tôi đề nghị các công thức sau đây.
DOSKEY
và $*
để tạols
lệnh .Ví dụ, lệnh của bạn có thể trông giống như
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
hữu ích cho các lệnh sử dụng đối số. Ví dụ, ở đây tôi muốn có thể làmsublime my_code.c
.
Sổ đăng ký cho cmd có tại HKEY_CURRENT_USER -> Phần mềm -> Microsoft -> Bộ xử lý lệnh. Tạo một mục nhập có giá trị chuỗi được gọi là AutoRun với đường dẫn đầy đủ của tệp (không phải thư mục chứa) chẳng hạn như %USERPROFILE%\custom_command.cmd
. Sau đó mỗi lần cmd được chạy, lệnh của bạn sẽ được tải!
Bạn cũng có thể thêm nhiều nội dung hữu ích vào tệp loạt. Xem ở đây để biết mẫu ví dụ.
Chắc chắn ls sẽ không hoạt động như một lệnh unix cho các lô. Nếu bạn chọn% 1 cho -l hoặc -a, v.v. và tất cả các kết hợp của chúng, nó sẽ hoạt động ...
Bạn có thể làm theo hướng dẫn này: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : vượt qua/K path/to/custom/init_cmd.bat
tới lệnh "khởi động trình bao" của bạn.
Tôi đang sử dụng ConsoleZ làm trình bao bọc trình bao của mình, vì vậy trong trường hợp của tôi, tôi có thể tìm thấy tùy chọn thiết lập trong "tab", sau đó tôi đặt đường dẫn trình bao thành "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
như thế này .
Trong trường hợp C:\cmd_init.bat
là tập lệnh batch chứa macro của tôi, đây là những gì tôi sẽ đi cho:
@echo off
doskey ls=dir /b
rem other macro stuff..
Xin lỗi vì định dạng và những sai sót khác, đây là lần đầu tiên tôi trả lời ở đây. Tôi hy vọng nó sẽ giúp!
Ai đó sử dụng Hệ thống con Linux cho Windows có thể gọi ls
từ hệ điều hành Linux. Lệnh sau tạo ls
Lệnh trong System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(Tính năng Hệ thống con Linux phải được bật / cài đặt trước)
Đây là mã nguồn C # và mã nhị phân của tôi .
Chỉ cần thêm ls.exe vào đâu đó và thêm đường dẫn vào biến môi trường đường dẫn.