Bí danh lệnh trong Dấu nhắc lệnh?


18

Làm cách nào tôi có thể tạo bí danh lệnh trong Dấu nhắc lệnh của Windows như tôi sẽ làm với bash?

Tôi phát hiện ra về doskeytrong một thread trên diễn đàn , vì vậy tôi có thể làm điều gì đó như:

doskey ls=dir /b

... và bây giờ lệnh lshoạt động giống như lstrên Unix. (Tôi gõ lsrất thường xuyên cmd, nó thậm chí không hài hước.)

Nhưng làm thế nào để tôi có được điều này để gắn bó giữa các phiên? Nó biến mất trong lần tiếp theo tôi mở cmd.exe. (Có cái gì đó như thế .bash_profilenào?)


Xin lỗi để làm cho nó không chính thức, nhưng bạn có thể hưởng lợi từ việc cài đặt một bản sao của Cygwin và có tất cả các công cụ unix tại vị trí của bạn
bubu

Vâng, tôi muốn, nhưng tôi không nghĩ đó là một lựa chọn (và có thể là công việc nhiều hơn giá trị của nó). Các máy chính của tôi là Linux và OS X - Tôi hiện đang thử nghiệm một số chương trình trên Windows.
Benjamin Oakes

1
không có nhiều việc phải làm. cygwin.com/setup.exe là tất cả những gì bạn cần cài đặt. chỉ cần tải về và nhấp vào tiếp theo. tất cả đều ở đó và rất đơn giản. Không có gì nhiều để cấu hình cả.
bubu

Hrm ... tốt, tôi sẽ thử. Máy đã có rất nhiều vấn đề rồi ...;)
Benjamin Oakes

4
trừ khi MS-DOS của bạn là phiên bản 6.22 trở xuống, bạn không chạy DOS. bằng cách đề cập đến cmd.exe, tôi giả sử bạn đang nói về trình vỏ lệnh WinNT / 2k / XP / etc cơ bản.
quack quixote

Câu trả lời:


0

Cygwin có thể được sử dụng trong trường hợp này mặc dù đây không phải là câu trả lời chính xác.

http://www.cygwin.com/
Tải xuống CygWin : http://cygwin.com/setup.exe

Để truy cập dễ dàng trong windows, bạn có thể đặt c: \ cygwin \ bin vào đường dẫn của mình.

lưu ý rằng có một số lệnh xung đột với phần mềm windows không tương đương, ví dụ: find (1) vs find.exe - find (1) liệt kê tất cả các tệp và thư mục con trong khi các hàm find.exe như grep.

tùy chọn khác là truy cập

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Bộ xử lý lệnh \ AutoRun hoặc HKEY_CURRENT_USER \ Software \ Microsoft \ Bộ xử lý lệnh \ AutoRun

Thủ tục thanh toán

 cmd.exe /? 
để biết thêm chi tiết


Hrm ... nó dường như không sử dụng bất kỳ con đường Windows nào của tôi ... Tôi sẽ phải chơi xung quanh với điều này sau, tôi nghĩ vậy. (Chưa bao giờ sử dụng cygwin một cách nghiêm túc trước đây.) Cảm ơn sự giúp đỡ của bạn cho đến nay.
Benjamin Oakes

thêm đường dẫn cygwin vào biến môi trường đường dẫn windows cho phép bạn sử dụng các công cụ trong môi trường cygwin trong cmd.exe; chỉ cần lưu ý rằng có cảnh báo, ví dụ như find.exe đụng độ với lệnh find được cung cấp bởi cygwin.
bubu

Tại sao lại thiếu kinh nghiệm? Tôi chỉ không có ý tưởng.
bubu

34

Thật dễ dàng để thiết lập các bí danh vĩnh viễn trong dấu nhắc lệnh của Windows bằng cách sử dụng tùy chọn @DOSKEYlệnh và HKCU\Software\Microsoft\Command ProcessorAutorun.

Hướng dẫn từng bước nhanh chóng:

  1. Tạo một tệp bó mới, gọi nó Alias.bat. Sao chép / dán văn bản dưới đây. MIPO: Tôi khuyên bạn nên tạo một C:\Binthư mục cho tất cả các công cụ dòng lệnh của bạn.
  2. Mở sổ đăng ký HKEY_CURRENT_USER\Software\Microsoft\Command Processor.
  3. Thêm một Giá trị chuỗi được đặt tên Autorunvà đặt giá trị thành đường dẫn tuyệt đối của Alias.battệp.
  4. Làm xong.

Tệp bó này sẽ thực thi mỗi khi bạn mở một dấu nhắc lệnh.

Nội dung của Alias.bat

DOSKEY ls=DIR $* 
DOSKEY cp=COPY $* 
DOSKEY xcp=XCOPY $*
DOSKEY mv=MOVE $* 
DOSKEY clear=CLS
DOSKEY h=DOSKEY /HISTORY
DOSKEY alias=if ".$*." == ".." ( DOSKEY /MACROS ) else ( DOSKEY $* )

Bây giờ bạn có thể nhập alias(tức là DOSKEY /MACROS) để xem danh sách bí danh / macro hiện tại.

Để thêm bí danh mới cho phiên hiện tại, chỉ bạn mới có thể sử dụng alias name=command.


1
Đơn giản, dễ dàng cập nhật một lần thiết lập, tôi thích cái này rất nhiều!
Urda

Thật không may, tôi đã ngừng sử dụng các bí danh này, vì @DOSKEYlệnh gây ra sự cố khi thoát khỏi Autodesk Maya 2010. Có lẽ có một công việc xung quanh, ví dụ như kiểm tra xem quy trình cha mẹ có phải là Maya hay không, tuy nhiên tôi không dành thời gian điều tra.
Dennis

9

Ngoài ra loại ngoài chủ đề -

Sử dụng PowerShell thay vì cmd.exedòng lệnh. Tin tốt là PowerShell có tương đương .bash_profilevà chạy giống như cmd.exedòng lệnh. Nó đi kèm với một tính năng tạo bí danh tích hợp. Tin xấu là có một chút về đường cong học tập nếu bạn muốn làm bất cứ điều gì phức tạp hơn cmd.execác lệnh đơn giản .

Nhân tiện, lsđược định nghĩa là một bí danh dir, ngay lập tức.


Tại sao không ai từng bảo tôi sử dụng power-shell trước đây? Nó là tốt hơn rất nhiều cho rất nhiều thứ.
Andres

3

Có một mục đăng ký HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRuncho phép bạn chạy một lệnh khi bạn bắt đầu một dấu nhắc cmd. Điều này bao gồm một tập tin hàng loạt.


Bạn có thể muốn trỏ đến HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun vì những người khác sẽ không có cùng ID người dùng như bạn.
bubu

@bubu: Ồ, rất đúng, xin lỗi. Tôi thấy rằng bằng cách tìm kiếm đăng ký của tôi, đã không nghĩ.
Phoshi

1

Tôi đề nghị cài đặt phiên bản dos của các lệnh này trực tiếp từ liên kết này .

Đơn giản, nhẹ nhàng, hiệu quả, v.v ... Được sử dụng một thời gian, làm tôi hạnh phúc! Cygwin là một chút lớn cho các yếu tố cần thiết tôi cần.


0

Hãy thử đặt chúng trong autoexec.bat. Tôi không chắc chắn, bạn sẽ phải thử nó. Đặt autoexec.bat vào C: \


Có vẻ như không hoạt động ...
Benjamin Oakes


0

Tôi sẽ là một thầy chiêu hồn trong giây lát và nâng sợi chỉ này từ cõi chết. Đó là câu trả lời không thỏa đáng với tôi. Tôi biết có một cách tốt hơn. Tôi mải mê làm và bao gồm các tập tin dơi và cố gắng tìm ra cách để quả bóng spaghetti hoạt động tốt, nó không tốt. Dù sao, trở lại Google tôi đã đi ..

Tôi cũng đã tìm thấy điều này Cách thêm bí danh / lệnh mới của DOS và tạo lối tắt bàn phím cho quản trị viên DOS Nó hoạt động rất tốt, nó sẽ hoạt động trên 98-7 (hệ thống đánh số khá buồn cười nhưng đây là cửa sổ). Tôi hy vọng nó sẽ giúp những người trong chủ đề này và những người Google gửi theo cách này.

Cách này không đơn giản như Bí danh và cũng không phải là doskey. Sau khi thiết lập, đây là về cùng một nỗ lực.

Tôi cũng sẽ thêm rằng các phần của điều này được hợp nhất với câu trả lời của Dennis Williamson tốt hơn nhiều. Bạn có thể có môi trường shell cho nhiều phiên bản của cùng một ứng dụng, giả sử php 4 cho các tập lệnh cũ và php 5 cho máy chủ thử nghiệm của bạn.

Dù sao điều này làm việc tốt hơn nhiều đối với tôi.


0

Giải quyết nó bằng cách thiết lập môi trường PATH

tạo tập tin ls.c

nhập mã sau

int main()
{
system("dir /b");
return 0;
}

vào ls.c và biên dịch tệp:

$gcc ls.c -o ls

một tập tin thực thi ls.exe được tạo

tạo một thư mục, đặt tên là cmdline_tools

$mkdir cmdline_tools

sao chép ls.exe vào thư mục

đặt đường dẫn của thư mục trong môi trường PATH [sao chép vị trí của thư mục và dán nó vào PATH]

C:/cmdline_tools

Mở cmd.exe của bạn và gõ

$ ls

Nó hoạt động như lệnh dir. Bạn có thể làm cho các lệnh khác theo cùng một cách. Nếu không cho chúng tôi biết.


0

CMD với các bí danh / hàm từ doskey và bashrc (từ cygwin> bash), các dấu gạch chéo về phía trước cũng hoạt động trong cmd (win7 trở đi)

  1. Tạo shorcut để cmd để sử dụng cmdrc.cmd

    cmd -a "/ k% HOME% \ cmdrc.cmd c: \"

2 C:> mèo% HOME% / cmdrc.cmd

:: Override same named builtin windows commands
:: To override these aliases, prefix with '@', eg. @date will not use alias.
@doskey date=c:\cygwin\bin\date.exe $*
@doskey echo=c:\cygwin\bin\echo.exe $*
@doskey mkdir=c:\cygwin\bin\mkdir.exe $*
@doskey rmdir=c:\cygwin\bin\rmdir.exe $*
@doskey find=c:\cygwin\bin\find.exe $*
@doskey time=c:\somedir\time.exe $*

:: using a particular rsync with some options
@doskey rsync=c:\cygwin\bin\rsync.exe -e "ssh -F %HOME%/.ssh/config" $*   

@doskey cp='cp -vi %*'
@doskey ..=cd ..
@doskey ...=cd ../.. 

:: Or use bashrc (bash aliases, bash functions):

:: eg. In bashrc we have "alias cpvi='cp -vi'"

@doskey cpvi=bash -ic "set +u; cpvi $*"  

:: now cpvi is callable from cmd.

:: Install clink_x64 if you want readline editing in cmd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.