Saya ingin membuat alias
dari a cmdlet
yang tidak kedaluwarsa setelah saya menutup sesi Powershell saat ini, katakanlah saya memiliki alias ini:
C:\Users\Aymen> New-Alias Goto Set-Location
Ini membuat Goto
alias dengan sempurna , tetapi saya ingin menggunakannya bahkan setelah saya menutup sesi saat ini, bagaimana saya bisa mencapainya.
catatan:
Sistem Bantuan PowerShell menyarankan agar saya dapat mengekspor alias yang saya buat, dan mengimpornya saat saya membuka sesi baru, sebenarnya bukan itu yang saya cari, karena, apakah ada cara langsung yang jelas untuk tetap memiliki alias setelah saya buat melalui sesi yang berbeda
powershell
AymenDaoudi
sumber
sumber
Jawaban:
DIPERBARUI - Jan 2017
Dimungkinkan untuk menyimpan dalam
profile.ps1
file kode apa pun PowerShell yang akan dijalankan setiap kali PowerShell dimulai. Setidaknya ada 6 jalur berbeda tempat menyimpan kode bergantung pada pengguna mana yang harus menjalankannya. Kami hanya dapat mempertimbangkan 2 di antaranya: jalur "semua pengguna" dan "hanya pengguna Anda".Jadi untuk menjawab pertanyaan Anda, Anda hanya perlu membuat
profile.ps1
file yang berisi kode yang ingin Anda jalankan, yaitudan simpan di jalur yang benar:
"$Home\Documents"
(C: \ Users \ yourname \ Documents): hanya pengguna Anda yang akan menjalankan kode.$PsHome
(C: \ Windows \ System32 \ WindowsPowerShell \ v1.0): setiap pengguna akan mengeksekusi kode.Untuk menerapkan perubahan, tutup semua instance PowerShell yang terbuka dan mulai ulang.
TIPS
Jika kedua jalur berisi
profile.ps1
file, semua pengguna akan dieksekusi terlebih dahulu, lalu spesifik pengguna.Selalu letakkan kode di profil khusus pengguna jika tidak perlu memperpanjang eksekusinya untuk setiap pengguna. Anda tidak memerlukan hak administrator untuk menambahkan file ke ruang pengguna Anda (jika tidak, Anda melakukannya) dan Anda tidak mencemari ruang pengguna lain.
INGAT! The
$PsHome
jalur yang berbeda antara 32bit dan 64bit contoh PowerShell, sehingga Anda harus mempertimbangkan baik lingkungan jika Anda ingin selalu mengeksekusi kode profil. Biasanya jalurC:\Windows\System32\WindowsPowerShell\v1.0
untuk lingkungan 64bit danC:\Windows\SysWow64\WindowsPowerShell\v1.0
untuk yang 32bit.sumber
\Users\{ME}\Documents\WindowsPowerShell
dan kemudian menambahkanMicrosoft.PowerShell_profile.ps1
non dari jalur lain yang berfungsi untuk saya."$HOME\Documents\WindowsPowerShell"
dan penamaanMicrosoft.PowerShell_profile.ps1
membatasi cakupan ke non-ISE dan ke host saat ini, tetapi tidak boleh menjadi masalah izin (sama"$Home\Documents\profile.ps1" should apply
). Mungkin tidak begitu, saya akan mencobanya, terima kasih atas informasinyaNew-Item -path $profile -type file -force
yang membuat folder dan fileDocuments\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Bukan ide yang baik untuk menambahkan hal semacam ini langsung ke
$env:WINDIR
folder PowerShell Anda .Cara yang disarankan adalah menambahkannya ke profil pribadi Anda:
cd $env:USERPROFILE\Documents md WindowsPowerShell -ErrorAction SilentlyContinue cd WindowsPowerShell New-Item Microsoft.PowerShell_profile.ps1 -ItemType "file" -ErrorAction SilentlyContinue powershell_ise.exe .\Microsoft.PowerShell_profile.ps1
Sekarang tambahkan alias Anda ke file Microsoft.PowerShell_profile.ps1 yang sekarang dibuka:
function Do-ActualThing { # do actual thing } Set-Alias MyAlias Do-ActualThing
Kemudian simpan, dan segarkan sesi saat ini dengan:
. $profile
Catatan: Untuk berjaga-jaga, jika Anda mendapatkan masalah izin seperti
Coba perintah di bawah ini dan segarkan sesi lagi.
sumber
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
. The-Scope
pilihan membuatnya sedikit lebih aman.MyAlias
. Juga, untuk menyampaikan argumen, gunakan@Args
, misalnyafunction gs { git status @Args }
Set-Alias
karena saya suka menamai metode saya menggunakan konvensi PS yang sesuai dengan Kata Kerja yang sesuai. Tapi ya, jika Anda tidak pilih-pilih, Anda bisa memberi nama metode Anda apa pun yang ingin Anda panggil.2018, Windows 10
Anda dapat menautkan ke file atau direktori apa pun dengan bantuan skrip PowerShell sederhana.
Menulis script shortcut file
Buka Windows PowerShell ISE. Di panel skrip tulis:
New-Alias ${shortcutName} ${fullFileLocation}
Kemudian menuju ke panel baris perintah. Temukan alamat profil pengguna PowerShell Anda dengan
echo $profile
. Simpan skrip di alamat ini.Skrip di alamat profil PowerShell akan berjalan setiap kali Anda membuka PowerShell. Pintasan harus berfungsi dengan setiap jendela PowerShell baru.
Menulis script shortcut direktori
Ini membutuhkan baris lain dalam skrip kami.
function ${nameOfFunction} {set-location ${directory_location}} New-Alias ${shortcut} ${nameOfFunction}
Selebihnya persis sama.
Aktifkan PowerShell Scripts
Secara default, skrip PowerShell diblokir. Untuk mengaktifkannya, buka pengaturan -> Perbarui & Keamanan -> Untuk pengembang. Pilih Mode Pengembang (mungkin perlu dimulai ulang). .
Gulir ke bawah ke bagian PowerShell, centang opsi "Ubah kebijakan eksekusi ...", dan terapkan.
sumber
echo $profile
adalah tip yang bagus untuk membantu menemukan lokasi yang benar untuk menambahkan file. Terima kasih atas jawabanBuka jendela Windows PowerShell dan ketik:
notepad $profile
Kemudian buat fungsi, seperti:
function goSomewhereThenOpenGoogleThenDeleteSomething { cd C:\Users\ Start-Process -FilePath "http://www.google.com" rm fileName.txt }
Kemudian ketikkan ini di bawah nama fungsi:
Sekarang Anda dapat mengetik kata "google" ke dalam Windows PowerShell dan menjalankan kode di dalam fungsi Anda!
sumber
Hanya untuk menambahkan ke daftar kemungkinan lokasi ini ...
Ini tidak berhasil untuk saya:
\Users\{ME}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Namun demikian:
\Users\{ME}\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Jika Anda tidak memiliki profil atau Anda ingin membuatnya, jalankan perintah berikut, ini akan membuat folder / file yang diperlukan dan bahkan memberi tahu Anda di mana ia berada!
New-Item -path $profile -type file -force
sumber
untuk membuat file profile1.psl, ketik perintah berikut:
item baru $ PROFILE.CurrentUserAllHosts -ItemType file -Force
untuk mengakses file, ketik perintah selanjutnya:
ise $ PROFILE.CurrentUserAllHosts
Catatan jika Anda belum pernah melakukan ini sebelumnya, Anda akan melihat bahwa Anda tidak akan dapat menjalankan skrip karena kebijakan eksekusi Anda, yang perlu Anda ubah menjadi Tidak Dibatasi dari Dibatasi (default).
untuk melakukannya tutup skrip dan kemudian ketik perintah ini:
Set-ExecutionPolicy -Scope CurrentUser
kemudian:
RemoteSigned
lalu perintah ini lagi:
ise $ PROFILE.CurrentUserAllHosts
lalu ketikkan alias Anda di skrip, simpan, dan alias harus dijalankan setiap kali Anda menjalankan PowerShell, bahkan setelah komputer Anda restart.
sumber
Set-ExecutionPolicy RemoteSigned
. Jangan merekomendasikanUnrestricted
. Sumber: itprotoday.com/management-mobility/…Ini sedikit mewah ... tetapi berhasil:
Langkah 1: Buat Profil Powershell:
FILE: install_profile.ps1 # THIS SCRIPT BLOWS AWAY YOUR DEFAULT POWERSHELL PROFILE SCRIPT # AND INSTALLS A POINTER TO A GLOBAL POWERSHELL PROFILE $ErrorActionPreference = "Stop" function print ([string]$msg) { Write-Host -ForegroundColor Green $msg } print "" # User's Powershell Profile $psdir = "$env:USERPROFILE\Documents\WindowsPowerShell" $psfile = $psdir + "\Microsoft.PowerShell_profile.ps1" print "Creating Directory: $psdir" md $psdir -ErrorAction SilentlyContinue | out-null # this is your auto-generated powershell profile to be installed $content = @( "", ". ~/Documents/tools/profile.ps1", "" ) print "Creating File: $psfile" [System.IO.File]::WriteAllLines($psfile, $content) print "" # Make sure Powershell profile is readable Set-ExecutionPolicy -Scope CurrentUser Unrestricted
Langkah 2: lalu di tools ~ / Documents / tools / profile.ps1:
function Do-ActualThing { # do actual thing } Set-Alias MyAlias Do-ActualThing
Langkah 3:
$ Set-ExecutionPolicy -Scope CurrentUser Tidak Terbatas $. ./install_profile.ps1
sumber