PowerShell设置命令永久别名

在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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容