ET框架---HotFix.Init学习笔记

本文介绍了HotFix.Init的启动过程,包括热更新层的初始化、消息调度器注册、UI及OpcodeType组件添加等内容,并深入探讨了LandlordsLogin界面的创建流程。

HotFix.Init学习笔记

请大家关注我的微博:@NormanLin_BadPixel坏像素


我们之前看的代码都是属于Modle命名空间下的,现在我们需要来看看热更下的代码了。我们的入口就是Init.Start方法。

public static void Start()
{
    try
    {
        Hotfix.Scene.ModelScene = Game.Scene;

        // 注册热更层回调
        Game.Hotfix.Update = () => { Update(); };
        Game.Hotfix.LateUpdate = () => { LateUpdate(); };
        Game.Hotfix.OnApplicationQuit = () => { OnApplicationQuit(); };

        // 注册热更层消息回调
        ClientDispatcher clientDispatcher = new ClientDispatcher
        {
            HotfixCallback = (s, p) => { HotfixMessageDispatcher.Run(s, p); }
        };
        Game.Scene.GetComponent<NetOuterComponent>().MessageDispatcher = clientDispatcher;

        Hotfix.Scene.AddComponent<UIComponent>();
        Hotfix.Scene.AddComponent<OpcodeTypeComponent>();
        Hotfix.Scene.AddComponent<MessageDispatherComponent>();

        //Hotfix.EventSystem.Run(EventIdType.InitSceneStart);
        Hotfix.EventSystem.Run(EventIdType.LandlordsInitSceneStart);
    }
    catch (Exception e)
    {
        Log.Error(e.ToStr());
    }
}

作者的注释很详细咯。我们在这里,终于看到了之前在NetOuterComponent留下的坑,对网络消息的处理。在ClientDispatcher内。这里大家注意,网络消息也分为热更层的消息跟非热更层的消息,两者会做不同的处理,所以在这里创建ClientDispatcher的时候一并注册了热更层消息回调。


本来想在这里直接讲ClientDispatcher的,但是写完发现篇幅有点长,还讲了点其他东西,所以这里分下P吧。ClientDispatcher学习笔记


在注册了消息调度后,添加了热更层的UIComponent、OpcodeTypeComponent、MessageDispatherComponent。UI我们先不讲,其他两个在ClientDispatcher学习笔记里面顺带讲了。
最后,我们通过Hotfix.EventSystem调用了EventIdType.LandlordsInitSceneStart事件。而Hotfix.EventSystem,跟Model.EventSystem区别不大,大家可以自己去看一下。需要注意的是,在HotFix.EventSystem中注册的事件,也会注册到mono层。

// hotfix的事件也要注册到mono层,hotfix可以订阅mono层的事件
Action<List<object>> action = list => { Handle(aEventAttribute.Type, list); };
Game.EventSystem.RegisterEvent(aEventAttribute.Type, new EventProxy(action));

EventProxyMessageProxy同类型的功能。
我们来看看都有什么订阅了LandlordsInitSceneStart事件。

[Event(EventIdType.LandlordsInitSceneStart)]
public class InitSceneStart_CreateLandlordsLogin : AEvent
{
    public override void Run()
    {
        //创建登录界面
        UI ui = Hotfix.Scene.GetComponent<UIComponent>().Create(UIType.LandlordsLogin);
    }
}

创建了个UI。。。好吧,这里如果不讲点UI方面的东西就讲不下去了。

这里说明一下UIComponent的一个作用,就是在创建UI实例的时候,会根据传入的UIType进行不同的初始化操作,每个UI的初始化都写在一个单独的类当中。具体怎么实现的我们之后再详细学(我大致浏览过嘿嘿),现在我们只要知道,当我们创建**UIType.LandlordsLogin**UI时,可以找到对应的初始化方法。我们来看看,这个UI到底是如何初始化的。

LandlordsLoginFactory

作者已经注释了许多,这里我们需要注意的是这段代码。

//创建登录界面实体
UI ui = ComponentFactory.Create<UI,GameObject>(login);

//添加登录界面组件
ui.AddComponent<LandlordsLoginComponent>();

这里第一眼我还以为是是Unity.GameObject.AddComponent呢,哈哈,其实是Entity.AddComponent。这里大家不要学我。LandlordsLoginComponent有点东西,我们分个P

CommandType Name Version Source ----------- ---- ------- ------ Alias Get-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Function Compress-Archive 1.2.5 Microsoft.PowerShell.Archive Function Compress-Archive 1.0.1.0 Microsoft.PowerShell.Archive Function ConvertFrom-SddlString 3.1.0.0 Microsoft.PowerShell.Utility Function Expand-Archive 1.2.5 Microsoft.PowerShell.Archive Function Expand-Archive 1.0.1.0 Microsoft.PowerShell.Archive Function Export-ODataEndpointProxy 1.0 Microsoft.PowerShell.ODataUtils Function Format-Hex 3.1.0.0 Microsoft.PowerShell.Utility Function Get-FileHash 3.1.0.0 Microsoft.PowerShell.Utility Function Get-OperationValidation 1.0.1 Microsoft.PowerShell.Operation.Validation Function Import-PowerShellDataFile 3.1.0.0 Microsoft.PowerShell.Utility Function Import-PSGetRepository 1.1.1 Microsoft.PowerShell.PSResourceGet Function Invoke-OperationValidation 1.0.1 Microsoft.PowerShell.Operation.Validation Function New-Guid 3.1.0.0 Microsoft.PowerShell.Utility Function New-TemporaryFile 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Add-Computer 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Add-Content 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Add-History 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Add-LocalGroupMember 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Add-Member 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Add-Type 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Checkpoint-Computer 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Clear-Content 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Clear-EventLog 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Clear-History 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Clear-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Clear-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Clear-RecycleBin 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Clear-Variable 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Compare-Object 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Complete-Transaction 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Compress-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Connect-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Convert-Path 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Convert-String 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertFrom-CliXml 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertFrom-Csv 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertFrom-Json 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertFrom-Markdown 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertFrom-SddlString 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertFrom-SecureString 7.0.0.0 Microsoft.PowerShell.Security Cmdlet ConvertFrom-String 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertFrom-StringData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertTo-CliXml 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertTo-Csv 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertTo-Html 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertTo-Json 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet ConvertTo-SecureString 7.0.0.0 Microsoft.PowerShell.Security Cmdlet ConvertTo-Xml 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Copy-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Copy-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Debug-Job 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Debug-Runspace 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Disable-ComputerRestore 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Disable-ExperimentalFeature 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Disable-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Disable-PSBreakpoint 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Disable-PSRemoting 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Disable-PSSessionConfiguration 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Disable-RunspaceDebug 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Disconnect-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Enable-ComputerRestore 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Enable-ExperimentalFeature 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Enable-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Enable-PSBreakpoint 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Enable-PSRemoting 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Enable-PSSessionConfiguration 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Enable-RunspaceDebug 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Enter-PSHostProcess 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Enter-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Exit-PSHostProcess 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Exit-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Export-Alias 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Export-Clixml 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Export-Counter 3.0.0.0 Microsoft.PowerShell.Diagnostics Cmdlet Export-Csv 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Export-FormatData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Export-ModuleMember 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Export-PSSession 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Find-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet ForEach-Object 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Format-Custom 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Format-Hex 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Format-List 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Format-Table 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Format-Wide 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Acl 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Get-Alias 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-AuthenticodeSignature 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Get-ChildItem 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-Clipboard 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-CmsMessage 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Get-Command 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-ComputerInfo 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-ComputerRestorePoint 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Get-Content 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Get-Counter 7.0.0.0 Microsoft.PowerShell.Diagnostics Cmdlet Get-Credential 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Get-Culture 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Date 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Error 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Event 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-EventLog 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Get-EventSubscriber 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-ExecutionPolicy 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Get-ExperimentalFeature 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-FileHash 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-FormatData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Help 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-History 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-Host 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-HotFix 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-InstalledPSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Get-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-ItemPropertyValue 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-Job 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Get-LocalGroupMember 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Get-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Get-Location 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-MarkdownOption 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Member 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Module 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-PfxCertificate 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-PSBreakpoint 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-PSCallStack 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-PSDrive 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-PSHostProcessInfo 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-PSProvider 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-PSResourceRepository 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Get-PSScriptFileInfo 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Get-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-PSSessionCapability 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-PSSessionConfiguration 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-PSSubsystem 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Get-Random 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Runspace 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-RunspaceDebug 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-SecureRandom 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-TimeZone 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Get-TraceSource 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Transaction 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Get-TypeData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Variable 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-Verb 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Get-WinEvent 7.0.0.0 Microsoft.PowerShell.Diagnostics Cmdlet Get-WmiObject 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Group-Object 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Import-Alias 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Import-Clixml 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Import-Counter 3.0.0.0 Microsoft.PowerShell.Diagnostics Cmdlet Import-Csv 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Import-LocalizedData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Import-Module 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Import-PowerShellDataFile 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Import-PSSession 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Install-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Invoke-Command 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Invoke-Expression 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Invoke-History 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Invoke-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Invoke-RestMethod 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Invoke-WebRequest 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Invoke-WmiMethod 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Join-Path 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Join-String 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Limit-EventLog 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Measure-Command 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Measure-Object 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Move-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Move-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet New-Alias 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet New-Event 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet New-EventLog 3.1.0.0 Microsoft.PowerShell.Management Cmdlet New-FileCatalog 7.0.0.0 Microsoft.PowerShell.Security Cmdlet New-Guid 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet New-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet New-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet New-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet New-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet New-Module 7.6.0.4 Microsoft.PowerShell.Core Cmdlet New-ModuleManifest 7.6.0.4 Microsoft.PowerShell.Core Cmdlet New-Object 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet New-PSDrive 7.0.0.0 Microsoft.PowerShell.Management Cmdlet New-PSRoleCapabilityFile 7.6.0.4 Microsoft.PowerShell.Core Cmdlet New-PSScriptFileInfo 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet New-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet New-PSSessionConfigurationFile 7.6.0.4 Microsoft.PowerShell.Core Cmdlet New-PSSessionOption 7.6.0.4 Microsoft.PowerShell.Core Cmdlet New-PSTransportOption 7.6.0.4 Microsoft.PowerShell.Core Cmdlet New-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet New-TemporaryFile 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet New-TimeSpan 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet New-Variable 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet New-WebServiceProxy 3.1.0.0 Microsoft.PowerShell.Management Cmdlet New-WinEvent 7.0.0.0 Microsoft.PowerShell.Diagnostics Cmdlet Out-Default 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Out-File 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Out-GridView 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Out-Host 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Out-Null 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Out-Printer 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Out-String 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Pop-Location 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Protect-CmsMessage 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Publish-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Push-Location 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Read-Host 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Receive-Job 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Receive-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Register-ArgumentCompleter 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Register-EngineEvent 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Register-ObjectEvent 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Register-PSResourceRepository 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Register-PSSessionConfiguration 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Register-WmiEvent 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Remove-Alias 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Remove-Computer 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Remove-Event 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Remove-EventLog 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Remove-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Remove-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Remove-Job 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Remove-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Remove-LocalGroupMember 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Remove-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Remove-Module 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Remove-PSBreakpoint 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Remove-PSDrive 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Remove-PSSession 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Remove-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Remove-TypeData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Remove-Variable 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Remove-WmiObject 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Rename-Computer 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Rename-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Rename-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Rename-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Rename-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Reset-ComputerMachinePassword 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Resolve-Path 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Restart-Computer 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Restart-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Restore-Computer 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Resume-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Save-Help 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Save-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Select-Object 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Select-String 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Select-Xml 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Send-MailMessage 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Set-Acl 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Set-Alias 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Set-AuthenticodeSignature 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Set-Clipboard 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Set-Content 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Set-Date 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Set-ExecutionPolicy 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Set-Item 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Set-ItemProperty 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Set-LocalGroup 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Set-LocalUser 1.0.0.0 Microsoft.PowerShell.LocalAccounts Cmdlet Set-Location 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Set-MarkdownOption 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Set-PSBreakpoint 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Set-PSDebug 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Set-PSResourceRepository 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Set-PSSessionConfiguration 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Set-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Set-StrictMode 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Set-TimeZone 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Set-TraceSource 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Set-Variable 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Set-WmiInstance 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Show-Command 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Show-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Show-EventLog 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Show-Markdown 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Sort-Object 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Split-Path 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Start-Job 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Start-Process 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Start-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Start-Sleep 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Start-ThreadJob 2.2.0 Microsoft.PowerShell.ThreadJob Cmdlet Start-Transaction 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Start-Transcript 7.0.0.0 Microsoft.PowerShell.Host Cmdlet Stop-Computer 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Stop-Job 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Stop-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Stop-Transcript 7.0.0.0 Microsoft.PowerShell.Host Cmdlet Suspend-Service 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Tee-Object 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Test-ComputerSecureChannel 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Test-Connection 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Test-FileCatalog 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Test-Json 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Test-ModuleManifest 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Test-Path 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Test-PSScriptFileInfo 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Test-PSSessionConfigurationFile 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Trace-Command 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Unblock-File 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Undo-Transaction 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Uninstall-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Unprotect-CmsMessage 7.0.0.0 Microsoft.PowerShell.Security Cmdlet Unregister-Event 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Unregister-PSResourceRepository 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Unregister-PSSessionConfiguration 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Update-FormatData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Update-Help 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Update-List 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Update-PSModuleManifest 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Update-PSResource 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Update-PSScriptFileInfo 1.1.1 Microsoft.PowerShell.PSResourceGet Cmdlet Update-TypeData 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Use-Transaction 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Wait-Debugger 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Wait-Event 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Wait-Job 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Management Cmdlet Where-Object 7.6.0.4 Microsoft.PowerShell.Core Cmdlet Write-Debug 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Write-Error 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Write-EventLog 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Write-Host 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Write-Information 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Write-Output 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Write-Progress 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Write-Verbose 7.0.0.0 Microsoft.PowerShell.Utility Cmdlet Write-Warning 7.0.0.0 Microsoft.PowerShell.Utility这些命令分别是什么意思
06-22
### PowerShell 命令列表及功能解释 以下是一些常用的 PowerShell 命令及其功能的详细说明: #### 1. 获取帮助信息 `Get-Help` 是用于获取命令或主题帮助信息的工具。通过此命令,用户可以了解特定命令的用法、参数和示例。 ```powershell Get-Help Get-Process ``` 上述命令将显示 `Get-Process` 的基本帮助信息[^1]。若需要更详细的帮助信息,可以添加 `-Detailed` 参数: ```powershell Get-Help Get-Process -Detailed ``` #### 2. 列出所有别名 PowerShell 提供了丰富的别名功能,可以通过以下命令查看当前会话中所有命令的别名: ```powershell Get-Alias ``` 此命令将列出所有可用的别名及其对应的完整命令名称[^1]。 #### 3. 管理进程 `Get-Process` 用于检索系统上运行的所有进程信息。例如: ```powershell Get-Process ``` 如果需要停止某个特定进程,可以使用 `Stop-Process` 命令: ```powershell Stop-Process -Name notepad ``` 上述命令将终止名为 `notepad` 的进程。 #### 4. 文件与目录操作 `Get-ChildItem` 用于列出指定路径下的文件和子目录。例如: ```powershell Get-ChildItem C:\Users\Username\Documents ``` 若需要递归地列出所有子目录中的内容,可以添加 `-Recurse` 参数: ```powershell Get-ChildItem C:\Users\Username\Documents -Recurse ``` #### 5. 管理服务 `Get-Service` 用于检索系统上的服务信息。例如: ```powershell Get-Service ``` 若需要启动或停止某个服务,可以分别使用 `Start-Service` 和 `Stop-Service` 命令: ```powershell Start-Service -Name Spooler Stop-Service -Name Spooler ``` #### 6. 管理事件日志 `Get-EventLog` 用于检索系统事件日志中的条目。例如: ```powershell Get-EventLog -LogName System -Newest 10 ``` 上述命令将显示系统日志中最新的 10 条记录。 #### 7. 远程管理 `Enter-PSSession` 用于建立与远程计算机的交互式会话。例如: ```powershell Enter-PSSession -ComputerName RemotePC ``` 若需要执行单个命令而不进入交互模式,可以使用 `Invoke-Command`: ```powershell Invoke-Command -ComputerName RemotePC -ScriptBlock { Get-Process } ``` #### 8. 网络配置 `Get-NetIPAddress` 用于检索网络接口的 IP 地址配置。例如: ```powershell Get-NetIPAddress ``` 若需要更改 IP 地址配置,可以使用 `New-NetIPAddress` 或 `Set-NetIPAddress` 命令。 #### 9. 注册表管理 `Get-ItemProperty` 用于检索注册表项的属性值。例如: ```powershell Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" ``` #### 10. 执行脚本 可以通过 `Invoke-Expression` 或直接调用脚本来执行 PowerShell 脚本。例如: ```powershell .\script.ps1 ``` --- ### 示例代码 以下是一个综合示例,展示如何使用多个 PowerShell 命令完成任务: ```powershell # 获取所有正在运行的进程,并将其名称保存到文件中 (Get-Process | Select-Object -ExpandProperty Name) > process_list.txt # 查看当前用户的文档目录下所有文件的大小 Get-ChildItem -Path "$env:USERPROFILE\Documents" -File | Format-Table Name, Length -AutoSize # 停止名为 'notepad' 的进程 Stop-Process -Name notepad ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值