Saya menggunakan Windows 10 dan mengalami kesulitan mengatur alias ke platform Java menggunakan PowerShell.

Ini bekerja di Git Bash: alias mytest='java -Xms1g -Xmx4g -cp D:/mypath/myfile.jar myfile.myapp'

Dan ketika saya ketik mytest ke dalam prompt git bash, itu kembali:

myfile [v11.3.0]

Usage:
  java ...

Dan saya dapat menjalankannya tanpa masalah dalam prompt git bash menggunakan alias.

Saya mencoba belajar bagaimana melakukan ini di PowerShell juga, dan berikut adalah upaya dan kesalahan saya:

Set-Alias -Name "mytest" -Value "java -Xms1g -Xmx4g -cp D:\mypath\myfile.jar myfile.myapp" -Description "An alias to for mytest"

Dan ketika saya memasukkan mytest dalam prompt PowerShell, itu mengembalikan kesalahan ini:

mytest : The term 'D:\mypath\myfile.jar myfile.myapp' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ mytest
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (D:\mypath\myfile.jar myfile.myapp:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Saya juga mencoba yang berikut, berdasarkan pada Bagaimana cara mengatur alias untuk perintah tertentu di PowerShell?, dan mengembalikan kesalahan yang sama: Function mytest { java -Xms1g -Xmx4g -cp "D:\mypath\myfile.jar myfile.myapp" $args }

1
a11 29 Mei 2021, 00:32

1 menjawab

Jawaban Terbaik

alias di PowerShell hanyalah alternatif nama untuk perintah lain , yang menghalangi mendefinisikan alias dengan (hard-coded) argumen , cara cangkang yang kompatibel dengan posix seperti bash izinkan.

Jadi, fungsi memang perlu (lihat Jawaban ini untuk lebih informasi).

Setara dengan bash alias berikut:

# bash
alias mytest='java -Xms1g -Xmx4g -cp D:/mypath/myfile.jar myfile.myapp'

Apakah fungsi PowerShell ini:

# PowerShell
function mytest { java -Xms1g -Xmx4g -cp D:/mypath/myfile.jar myfile.myapp $args }

Catatan Bagaimana otomatis {{{x0} } Variabel diperlukan untuk lulus argumen yang diteruskan ke fungsi melalui.

2
mklement0 28 Mei 2021, 22:19