Alias ​​alias di Command Prompt?

18

Bagaimana saya bisa membuat alias alias di Command Prompt Windows seperti yang saya lakukan bash?

Saya menemukan doskeydi utas forum , jadi saya dapat melakukan sesuatu seperti:

doskey ls=dir /b

... dan sekarang perintahnya lsbertindak sedikit lebih seperti lspada Unix. (Aku mengetik lsbegitu sering cmd, itu bahkan tidak lucu.)

Tetapi bagaimana saya membuat ini tetap di antara sesi? Itu hilang saat saya buka berikutnya cmd.exe. (Apakah ada sesuatu seperti .bash_profile?)

Benjamin Oakes
sumber
Maaf membuatnya offtopic, tetapi Anda bisa mendapatkan manfaat dari menginstal salinan cygwin dan memiliki semua alat unix di palmrest Anda
bubu
Ya, saya ingin, tapi saya rasa itu bukan pilihan (dan mungkin lebih banyak pekerjaan daripada nilainya). Mesin utama saya adalah Linux dan OS X - Saya baru saja menguji beberapa program pada Windows sekarang.
Benjamin Oakes
1
tidak banyak yang bisa dilakukan. Anda hanya perlu memasang cygwin.com/setup.exe . cukup unduh dan klik berikutnya. semua ada di sana dan sangat sederhana. tidak banyak yang bisa dikonfigurasi.
bubu
Hrm ... well, saya akan mencobanya. Mesin memiliki banyak masalah sudah ...;)
Benjamin Oakes
4
kecuali MS-DOS Anda adalah versi 6.22 atau kurang, Anda tidak menjalankan DOS. dengan menyebutkan cmd.exe saya anggap Anda sedang berbicara tentang shell perintah WinNT / 2k / XP / etc dasar.
quack quixote,

Jawaban:

0

cygwin dapat digunakan dalam kasus ini meskipun ini bukan jawaban tepat-topik.

http://www.cygwin.com/ CygWin
Unduh: http://cygwin.com/setup.exe

Untuk mengaksesnya dengan mudah di windows, Anda dapat meletakkan c: \ cygwin \ bin di jalur Anda.

perhatikan bahwa ada beberapa perintah yang berbenturan dengan perangkat lunak windows yang tidak setara, mis. find (1) vs find.exe - find (1) daftar semua file dan subdirektori sedangkan fungsi find.exe seperti grep.

Pilihan lain adalah mengakses

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ AutoRun atau HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun

Periksa

 cmd.exe /? 
untuk lebih jelasnya

bubu
sumber
Hrm ... sepertinya tidak menggunakan jalur Windows saya ... Saya harus bermain-main dengan ini nanti, saya pikir. (Belum pernah menggunakan cygwin dengan serius sebelumnya.) Terima kasih atas bantuan Anda sejauh ini.
Benjamin Oakes
menambahkan jalur cygwin ke dalam variabel lingkungan path windows memungkinkan Anda untuk menggunakan alat-alat di lingkungan cygwin di cmd.exe; hanya perhatikan bahwa ada peringatan misalnya find.exe bentrokan dengan perintah find yang disediakan oleh cygwin.
bubu
Mengapa undervote? Saya hanya tidak tahu.
bubu
34

Agak mudah untuk mengatur alias permanen di command prompt Windows menggunakan @DOSKEYperintah dan HKCU\Software\Microsoft\Command Processoropsi Autorun.

Panduan langkah demi langkah cepat:

  1. Buat file batch baru, sebut saja Alias.bat. Salin / tempel teks di bawah ini. TIP: Saya sarankan membuat C:\Binfolder untuk semua alat baris perintah Anda.
  2. Buka register HKEY_CURRENT_USER\Software\Microsoft\Command Processor.
  3. Tambahkan Nilai String yang dinamai Autorundan atur nilainya ke jalur absolut Alias.batfile.
  4. Selesai

File batch ini akan dieksekusi setiap kali Anda membuka prompt perintah.

Isi dari 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 $* )

Sekarang Anda dapat mengetik alias(mis. DOSKEY /MACROS) Untuk melihat daftar alias / makro saat ini.

Untuk menambahkan alias baru untuk sesi saat ini, hanya Anda yang dapat menggunakannya alias name=command.

Dennis
sumber
1
Sederhana, mudah untuk memperbarui setelah pengaturan, saya sangat suka yang ini!
Urda
Sayangnya saya sejak itu berhenti menggunakan alias ini, karena @DOSKEYperintah menyebabkan crash ketika keluar dari Autodesk Maya 2010. Mungkin ada pekerjaan sekitar, misalnya memeriksa apakah proses induk adalah Maya, namun saya belum menghabiskan waktu menyelidiki.
Dennis
9

Juga semacam di luar topik -

Gunakan PowerShell sebagai ganti cmd.exebaris perintah. Berita baiknya adalah PowerShell memiliki yang setara .bash_profile, dan berjalan seperti cmd.exebaris perintah. Muncul dengan fitur generasi alias built-in. Berita buruknya adalah ada sedikit kurva pembelajaran jika Anda ingin melakukan sesuatu yang lebih rumit daripada cmd.exeperintah sederhana .

By the way, lsdidefinisikan sebagai alias dir, langsung dari kotak.

mkClark
sumber
Mengapa tidak ada yang menyuruh saya menggunakan power-shell sebelumnya? Jauh lebih baik untuk banyak hal.
Andres
3

Ada entri registri HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRunyang memungkinkan Anda untuk menjalankan perintah ketika Anda memulai prompt cmd. Ini termasuk file batch.

Phoshi
sumber
Anda mungkin ingin mengarahkan ke HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun karena orang lain tidak akan memiliki ID pengguna yang sama dengan Anda.
bubu
@ubu: Oh, benar sekali, maaf. Saya menemukan bahwa dengan mencari registri saya, tidak berpikir.
Phoshi
1

Saya sarankan menginstal versi dos dari perintah-perintah ini langsung dari tautan ini .

Sederhana, ringan, efisien, dll. Sudah menggunakannya untuk sementara waktu sekarang, Membuat saya senang! Cygwin agak besar untuk hal-hal penting yang saya butuhkan.

pengguna248939
sumber
0

Coba letakkan di autoexec.bat. Saya tidak yakin, Anda harus mencobanya. Masukkan autoexec.bat di C: \

0fnt
sumber
Tampaknya tidak berhasil ...
Benjamin Oakes
0

Masukkan alias Anda ke file bernama, mungkin, alias.cmd dan tambahkan /K \path\to\alias.cmdke pintasan yang Anda gunakan untuk memulai cmd.exe.

Referensi

Dijeda sampai pemberitahuan lebih lanjut.
sumber
0

Saya akan menjadi ahli nujum sejenak dan mengangkat utas ini dari kematian. Jawabannya tidak memuaskan bagi saya. Saya tahu ada cara yang lebih baik. Saya mencoba-coba membuat dan memasukkan file bat dan mencoba mencari cara agar bola spageti bekerja dengan baik. Pokoknya kembali ke Google saya pergi ..

Saya juga menemukan ini Cara menambahkan alias / perintah DOS baru dan membuat pintasan keyboard untuk admin DOS Ini berfungsi dengan baik, seharusnya bisa bekerja pada 98-7 (sistem penomoran agak lucu tapi hei itu windows). Saya harap ini membantu mereka yang ada di utas ini dan mereka yang mengirim Google dengan cara ini.

Cara ini tidak sesederhana Alias, dan demikian juga doskey. Setelah pengaturan ini adalah tentang upaya yang sama.

Saya juga akan menambahkan bahwa bagian dari ini bergabung dengan jawaban Dennis Williamson jauh lebih baik. Anda dapat memiliki lingkungan shell untuk beberapa versi aplikasi yang sama, katakanlah php 4 untuk skrip lama Anda dan php 5 untuk server pengujian Anda.

Bagaimanapun ini bekerja jauh lebih baik bagi saya.

bot tebusan
sumber
0

Memecahkannya dengan mengatur lingkungan PATH

buat file ls.c

masukkan kode berikut

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

ke ls.c dan kompilasi file:

$gcc ls.c -o ls

file executable ls.exe dibuat

buat direktori, beri nama sebagai cmdline_tools

$mkdir cmdline_tools

salin ls.exe ke direktori

atur jalur direktori di lingkungan PATH [salin lokasi direktori dan tempel di PATH]

C:/cmdline_tools

Buka cmd.exe Anda dan ketik

$ ls

Ini berfungsi sebagai perintah dir. Anda dapat melakukannya untuk perintah lain juga dengan cara yang sama. Jika tidak beri tahu kami.

Albert Mundu
sumber
0

CMD dengan alias / fungsi dari doskey dan bashrc (dari cygwin> bash), garis miring juga bekerja di cmd (win7 dan seterusnya)

  1. Buat shorcut ke cmd untuk menggunakan cmdrc.cmd

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

2 C:> cat% 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
mosh
sumber