Hai sesuai judul, ketika saya mencoba di cmder Prompt untuk membuat alias dengan tanda sama, apa yang datang dengan =
terpotong dan tidak disimpan dengan benar di file user-aliases.cmd
.
Misalnya:
λ alias wifi=netsh wlan show profile $1 key=clear
akan disimpan sebagai:
wifi=netsh wlan show profile $1 ke
Saya kira untuk $reasons
cmder membaca y=clear
sebagai $something
layak dievaluasi dan karenanya terputus dari proses penyimpanan alias yang sebenarnya. Mengedit file secara manual dengan cepat mengatasi masalah ini.
Apakah saya secara terang-terangan melewatkan sesuatu di Effin' Manual yang terus berkembang yang belum saya baca secara akurat? 😛
Sepertinya perintah doskey (yang membungkus alias) menangani contoh Anda, jadi ini mungkin bug dalam skrip alias.bat.
Anda dapat men-debug dengan memodifikasi alias.bat dan mengubah baris pertama menjadi <strong i="6">@echo</strong> on
. Melihatnya sekarang, saya melihat bahwa ada titik di mana skrip membagi string alias menggunakan "=" sebagai pembatas, dan mengasumsikan bahwa hanya akan ada satu = dalam string.
Berikut cara mengatasinya: di alias.bat, temukan baris yang mengatakan ":: validasi alias" dan di baris berikut ganti '2' dengan '*', seperti ini:
untuk /f "delims== tokens=1,* usebackq" %%G in ( echo "%_x%"
) lakukan (
Ini sepertinya bekerja untuk saya dengan contoh Anda.
Terima kasih telah menjelaskan secara rinci masalah yang dihadapi, sangat berguna bagi saya karena saya seorang pemula dalam hal CMD! :)
Saya dapat mengkonfirmasi koreksi Anda memperbaiki masalah, terima kasih! Apa aku harus mengerjakan PR?
Saya dapat membuat permintaan tarik dengan perbaikannya. Terima kasih telah mengonfirmasi bahwa ini berfungsi untuk Anda.
Komentar yang paling membantu
Sepertinya perintah doskey (yang membungkus alias) menangani contoh Anda, jadi ini mungkin bug dalam skrip alias.bat.
Anda dapat men-debug dengan memodifikasi alias.bat dan mengubah baris pertama menjadi
<strong i="6">@echo</strong> on
. Melihatnya sekarang, saya melihat bahwa ada titik di mana skrip membagi string alias menggunakan "=" sebagai pembatas, dan mengasumsikan bahwa hanya akan ada satu = dalam string.Berikut cara mengatasinya: di alias.bat, temukan baris yang mengatakan ":: validasi alias" dan di baris berikut ganti '2' dengan '*', seperti ini:
untuk /f "delims== tokens=1,* usebackq" %%G in (
echo "%_x%"
) lakukan (Ini sepertinya bekerja untuk saya dengan contoh Anda.