在PowerShell中直接使用Set-Alias或New-Alias命令创建的别名在关闭此Session后即会失效,防止此现象的方法是将此命令写入Windows PowerShell profile文件。 查看此文件在计算机中的位置:
PS C:\Users\my> $profile
C:\Users\my\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
一般该文件在没有创建前是不存在的,使用以下命令为当前用户创建profile命令并返回文件地址:
New-Item -Type file -Force $profile
打开文件写入别名函数代码:
function CDLardock($path) {
switch ($path) {
'C' {
$laradockPath = 'C:\Users\my\Documents\WindowsPowerShell'
break
}
'J' {
$laradockPath = 'D:\www\work'
break
}
$null {
$laradockPath = 'D:\www\laradock'
break
}
default {
if (-not (Test-Path -Path $path -PathType Container)) {
throw "Invalid path: $path"
}
$laradockPath = $path
}
}
Set-Location -Path $laradockPath
}
Set-Alias -Name Go -Value CDLardock
#function CDLardock {Set-Location -Path D:\www\laradock}
#Set-Alias -Name Go -Value CDLardock
# docIp container_name_or_id
function dockerIp($containerId) { docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $containerId}
Set-Alias -Name docIp -Value dockerIp
function dockerAllIP { docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)}
Set-Alias -Name docAllIp -Value dockerAllIP
# function dockerUp {Go ; docker-compose up -d nginx mysql redis rabbitmq }
# Set-Alias -Name docUp -Value dockerUp
# doc up / doc down / doc start / doc stop
function dockerOperation($operation) {
Go ;
if($operation -eq 'up'){
docker-compose up -d nginx mysql redis rabbitmq php-worker
}else{
docker-compose $operation
}
}
Set-Alias -Name doc -Value dockerOperation
function dockerExec($name){ Go ; docker-compose exec $name bash}
Set-Alias -Name exec -Value dockerExec
启动 PowerShell 提示 无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
. : 无法加载文件 C:\Users\my\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,因为在此系统上禁止运行脚本。
有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\my\Documents\WindowsPowerShell\Microsoft.PowerShell_profi ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
输入 get-ExecutionPolicy 输出 Restricted
PS C:\Windows\system32> get-ExecutionPolicy
Restricted
以管理员方式启动PowerShell 输入 set-ExecutionPolicy RemoteSigned
PS C:\Windows\system32> set-ExecutionPolicy RemoteSigned
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”):
更换完成后,再次使用命令 get-ExecutionPolicy 查看脚本执行策略。
PS C:\Windows\system32> get-ExecutionPolicy
RemoteSigned
重启 PowerShell