Ustawianie aliasu w Windows PowerShell

2

W PowerShell piszę:

PS C:> sal cdp "cd 'C:\Users\ec\Documents\Visual Studio 2010\Projects'"

Nie otrzymuję z tego żadnego błędu i

PS C:> gal cdp

wyświetla definicję jako: cd „C: \ Users \ ec \ Documents \ Visual Studio 2010 \ Projects”

Ale kiedy próbuję użyć cdp, otrzymuję to:

Nie można rozpoznać aliasu „cdp”, ponieważ odnosi się do terminu „cd” C: \ Users \ ec \ Documents \ Visual Studio 2010 \ Projects '', który nie jest rozpoznawany jako polecenie cmdlet, funkcja, program operacyjny lub plik skryptu. Sprawdź termin i spróbuj ponownie. W wierszu: 1 znak: 4
+ cdp <<<<
 + CatergoryInfo: ObjectNotFound (dsp: String) [], CommandNotFoundException
 + FullyQualifiedErrorId: AliasNotResolvedException

Zgaduję, że jest to banalnie łatwe. Więc przepraszam z góry, jeśli tak jest. Przejrzałem i przejrzałem google, a także przeczytałem książkę kucharską Windows PowerShell.

westsider
źródło

Odpowiedzi:

4

Z mojego zrozumienia, aliasy w piowershell nie zachowują się tak, jak w powłokach typu unix / linux. Alias ​​to jedynie skrótowy sposób wpisywania znacznie dłuższych poleceń. Dla funkcji, której szukasz, może być łatwiej zdefiniować funkcję:

funkcja cdp {Ustaw lokalizację „C: \ Users \ ec \ Documents \ Visual Studio 2010 \ Projects”}

Następnie możesz uruchomić cdp na linii, aby dostać się do żądanej lokalizacji. Lub możesz utworzyć zmienną dla lokalizacji, a następnie cd do tej nazwy zmiennej:

$cdp = 'C:\Users\ec\Documents\Visual Studio 2010\Projects'
cd $cdp

Są to dwa najprostsze rozwiązania tego, co wydaje się próbować osiągnąć.

Matrix Mole
źródło
Dzięki. Tak, próbuję zreplikować zachowanie skryptowe powłoki * nix. Obie twoje sugestie zadziałały dla mnie - więc zobaczę, czy uda mi się je utrzymać w formie, którą można łatwo ponownie wykorzystać.
westsider
1
Nawet jeśli nie zostały otwarte pytanie dotyczące kwestii trwałości, w wierszu PowerShell uruchomić get-help about_profile, że będzie ci pomóc z problemem trwałości
Matrix Mole
1
Dzięki. Ryzykując, że uruchomię amok etykiety, zdecydowałem się na użycie profile.ps1 w Documents / WindowsPowerShell / jako najłatwiejszej ścieżki. Działa to dobrze dla moich natychmiastowych potrzeb - podobnie jak .profile w innych systemach.
westsider
Cóż, więc jestem również amatorem. Prawie wszystkie moje dostosowania powłoki są również dostępne w moim profilu AllUsersAllHosts.
EBGreen