Saya dulu bekerja di bash dan mendapat banyak manfaat dari alias. Apakah ada cara yang setara di Windows Command Line?
Saya tidak ingin mensimulasikan lingkungan Linux, jadi cygwin bukan pilihan. Saya hanya perlu beberapa jalan pintas untuk beberapa perintah yang sangat panjang, seperti cd a_very_long_path
.
windows
command-line
StarPinkER
sumber
sumber
doskey
(jangan tertipu oleh nama itu bukan doskey MS DOS lama). Gunakandoskey /?
untuk informasi lebih lanjut. Selain itu, saya khawatir, pertanyaan ini di luar topik di sini.Jawaban:
Seperti yang Christian.K katakan dalam komentarnya, perintah DOSKEY dapat digunakan untuk mendefinisikan makro, yang analog dengan alias.
Parameter makro direferensikan dalam definisi melalui
$
posisi awalan:$1
melalui$9
dan$*
untuk semua.Lihat dokumentasi teknik doskey , atau ketik
doskey /?
atauhelp doskey
dari baris perintah untuk informasi lebih lanjut.Tetapi ada batasan serius dengan makro DOSKEY:
someMacro|findstr '^'
dandir|someMacro
gagal.for /f %A in ('someMacro') do ...
gagalBatasannya sangat parah sehingga saya jarang menggunakan macro DOSKEY.
Jelas Anda dapat membuat skrip batch bukan makro, dan pastikan lokasi skrip berada di PATH Anda. Tetapi kemudian Anda harus mengawali setiap skrip dengan CALL jika Anda ingin menggunakan skrip dalam skrip lain.
Anda bisa membuat variabel "makro" sederhana untuk perintah yang lama dan sering digunakan, tetapi sintaks agak canggung untuk mengetik, karena Anda perlu memperluas "makro" ketika Anda ingin menggunakannya.
Definisi:
Penggunaan (dari baris perintah atau skrip)
sumber
Anda dapat membuat skrip batch dan menyimpannya ke jalur Anda.
Di Linux Anda akan membuat skrip dan menambahkannya ke folder
~/bin
di windows Anda dapat melakukan hal yang sama.Tambahkan
%USERPROFILE%\bin
kePATH
variabel lingkungan Anda . Kemudian simpan skrip Anda di sana.quickcd.cmd
Sekarang Anda bisa mengetik
quickcd
di baris perintah.Itu juga bisa disebut di dalam skrip menggunakan
call
fungsisumber
Microsoft Windows [Version 10.0.17134.648]
/d
bendera keCD
subst
Jika Anda benar-benar berusaha menyiasati sesuatu seperti ini:
Anda dapat menggunakan
subst
perintah untuk memetakan jalur panjang itu ke huruf drive terpisahKemudian, ketika Anda ingin melompat ke folder itu, Anda bisa mengetik
m:
di baris perintah.Kelebihan dari ini
doskey
adalah bahwa ia bekerja di semua program batch, dan muncul di kotak dialog file apa pun di dalam Windows.Jika Anda tidak ingin pemetaan lagi:
sumber
Anda bisa menggunakan trik yang sama, yang digunakan windows: mengatur variabel lingkungan (atau hanya variabel dalam konteks batch) misalnya ada variabel lingkungan% windir% (dan beberapa lainnya) sehingga Anda dapat melakukan
atau
yang melakukan hal yang sama. Jadi yang harus Anda lakukan adalah:
setelah itu Anda dapat melakukan (dari mana pun Anda berada):
atau
atau apapun yang kamu mau.
sumber
Tidak seperti Linux, pada Windows alias dapat mengambil argumen, dan dapat diberikan parameter untuk menetapkan argumen tersebut dalam definisi mereka.
Perintah internal internal adalah doskey , yang berarti itu bukan file eksternal yang dapat dieksekusi yang terletak di
%SystemRoot%\System32
tetapi merupakan fiturcmd.exe
yang terletak di dalam%SystemRoot%
atau%Windir%
keduanya menunjuk keC:\Windows
folder secara default.Doskey mendefinisikan alias di antara banyak hal lainnya. Dalam terminologi Windows, alias disebut macro. Untuk mengatur alias yang Anda gunakan
Di sini
$1
menunjuk ke argumen pertama, dan$*
menunjuk ke semua argumen.Saya akan selalu menggunakan
$*
dan menggandakan kutipan$1
jika hanya ada satu argumen untuk menghilangkan spasi yang diperlakukan sebagai karakter khusus, yaitu sebagai pemisah (untuk perintah).Selain itu, Anda dapat menentukan makro
aliasAnda di file terpisah, katakanLinuxAliases.macro
dan kemudian gunakan sumber ituIni akan memuat semua alias yang didefinisikan di dalam file hanya untuk sesi saat ini , yang berarti ketika Anda
exit
keluar daricmd.exe
proses (juga dikenal sebagai shell dan Command Prompt), mereka hilang.Untuk memiliki alias permanen, Anda dapat mengetikkan perintah lengkap di suatu tempat di kunci regedit yang disebut AutoRun atau AutoCommand atau yang serupa, yang tidak dapat saya ingat sekarang di samping sintaks internal file makro: P
Berikut adalah dokumen resmi , dan bahkan yang lebih baik untuk perintah ini.
sumber
Saya telah membuat "alias" seperti itu khusus untuk mengubah direktori. Pada dasarnya saya membuat file bernama
fav.bat
dan memasukkannya ke folder di PATH (mis. C: \ MyBatches):Lalu saya bisa melompat ke folder yang sudah ditentukan sebelumnya dengan sangat cepat. Saya menulis artikel lengkap tentang teknik itu di sini .
sumber
dengan asumsi Anda tetap pada drive yang sama, yaitu tidak ada
D:
makacd D:\somedir\
diperlukan.Dalam kasus saya, C: menyimpan file sistem, tetapi semua pekerjaan ada di D:
2 bagian. pertama-tama atur beberapa direktori yang berfungsi, menggunakan file batch.
katakanlah localprofile.cmd . Anda dapat memiliki lebih dari satu ini, jalankan saja sesuai kebutuhan.
sekarang gunakan file perintah lain untuk berpindah, berdasarkan variabel lingkungan yang baru saja Anda atur.
wd.cmd
Dan sedikit contoh penggunaan:
wd dengan sendirinya seharusnya menunjukkan kepada saya daftar direktori yang ditandai. Ini berfungsi, tetapi tidak yakin mengapa saya menerima pesan "cd tak terduga" ini.
Batch .cmd biasa
Selain dari navigasi direktori, Anda dapat membuat foo.cmd di suatu tempat di PATH Anda dan dapat bertindak banyak sebagai alias. Ingat, tidak seperti cangkang Linux / OSX, file cmd dapat memengaruhi variabel lingkungan dan sesi, tanpa perlu sumber mereka.
Saya memiliki cdbin.cmd untuk menavigasi saya, misalnya:
Dan ini adalah grep.cmd pseudo-grep
dalam aksi (apa pun arti / + 2 / + 10)
D:\home\work\fb440.dumper>grep class *.py | sort /+2 /+10
sumber
Anda dapat menggunakan doskey.exe , berikut adalah contohnya:
Dan sekarang jika Anda mengetik
qcd
maka akan cd ke jalur itu.Berikut ini beberapa bantuan dengan doskey macro:
Itu adalah bentuk paling sederhana, berikut ini contohnya:
dan jika Anda mengetik
word
outputnya adalah:Anda dapat menggunakan $ 1- $ 9 untuk parameter, berikut adalah contohnya:
dan jika Anda mengetiknya
npd
akan membuka notepad tetapi jika kita mengetiknyanpd test.txt
akan membuka test.txt di notepad .Anda dapat menggunakan $ * untuk semua parameter, berikut adalah contoh lain:
dan jika Anda mengetik
prt This is short.
maka outputnya adalah:Anda dapat menggunakan $ T untuk banyak perintah, berikut ini sebuah contoh:
dan jika Anda mengetik
newline Hello and
maka outputnya adalah:Saya harap Anda mengerti.
sumber