Windows系统常见问题备查

Windows11

win11右键菜单怎么回到win10旧版
通过修改注册表的方式将资源管理右键菜单展示样式设置为Windows10风格。
可以将具体操作写一个BAT脚本中执行:

@rem 设置资源管理器的右键菜单选项为windows10风格
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

@rem 设置资源管理器的右键菜单选项为windows11风格
reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f

在Window环境下如何设置命令别名

C盘下新建一个名为alias的目录,在其中新建一个命令别名.bat的文件,并在命令别名.bat文件中编写相应的执行命令及参数。
同时,还需要将C:/alias路径添加到环境变量PATH中。

如下示例:
添加一个名为gitdiff的别名,在C:/alias目录下新建文件:gitdiff.bat,并在gitdiff.bat文件中编写详细的命令内容:

@echo off
@rem diff2html是一个nodejs模块,用户并列显示git差异,参考:https://www.cnblogs.com/nuccch/p/15720552.html
diff2html -s side --su open --lm words

完成上述设置之后即可在Windows控制台中直接执行gitdiff命令了。

参考: windows系统cmd命令设置别名,并添加到环境变量为 Windows PowerShell 设置 User Alias (命令别名)

Powershell增强

模块安装

在Windows环境中使用Powershell作为命令行终端,可以设置相应的主题。

# 查看已安装的模块
$ Get-InstalledModule

# 安装 PSReadLine
# PSReadLine 提供了语法高亮、错误提示、多行编辑、键绑定、历史记录搜索等功能
$ Install-Module PSReadLine

# 安装 posh-git
# posh-git 可以在 PowerShell 中显示 Git 状态信息,并提供 Git 命令的自动补全
$ Install-Module posh-git

# 安装 Oh My Posh
# oh-my-posh 提供了多种自定义主题和配色,可以让 PowerShell 更美观实用
$ Install-Module oh-my-posh

字体安装

Oh My Posh 中使用了很多图标字体,需要正常显示图标,需要安装一个 Nerd 字体,并修改 PowerShell 配置。
例如:选择的字体是 FiraCode,可以去 FiraCode GitHub 下载安装,解压后右键安装。

主题设置

主题默认存放路径C:\Users\xxx\AppData\Local\oh-my-posh\themes ,可以在 oh My Posh / themes 提供的GitHub下载配置文件。将下载的配置文件粘贴到主题目录,可以通过以下命令查看可用主题:

$ Get-PoshThemes

修改主题(以 emodipt-extend 为例):

$ oh-my-posh init pwsh --config 'C:\Users\xxx\AppData\Local\oh-my-posh\themes\emodipt-extend.omp.json' | Invoke-Expression

如果要实现启动 PowerShell 自动加载主题,可以在自定义配置文件中修改主题配置(Set-PoshPrompt)。

配置PowerShell

文件路径C:\Users\<userName>\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json,打开配置文件,修改字体配置:

{
  "profiles": {
    "defaults": {
      "font": {
        "face": "FiraCode NF"
      }
    }
  }
}

自定义配置

执行以下命令,第一次会显示找不到该文件,选择创建新文件:

$ notepad $profile

打开的文件地址是C:\Users\<userName>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,作用是在 PowerShell 启动时运行一些自定义的设置,比如导入模块、设置别名、定义函数等。

#------------------------------- Import Modules BEGIN -------------------------------
# 引入 ps-read-line
Import-Module PSReadLine

# 引入 posh-git
Import-Module posh-git

# 引入 oh-my-posh
Import-Module oh-my-posh

# 设置 PowerShell 主题
# Set-PoshPrompt ys
Set-PoshPrompt emodipt-extend
#------------------------------- Import Modules END   -------------------------------

#-------------------------------  Set Hot-keys BEGIN  -------------------------------
# 设置预测文本来源为历史记录
Set-PSReadLineOption -PredictionSource History

# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd

# 设置 Tab 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete

# 设置 Ctrl+d 为退出 PowerShell
Set-PSReadlineKeyHandler -Key "Ctrl+d" -Function ViExit

# 设置 Ctrl+z 为撤销
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo

# 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

# 设置向下键为前向搜索历史纪录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
#-------------------------------  Set Hot-keys END    -------------------------------

修改VS Code Terminal字体

PowerShell配置好后,可以正常显示了,但是在VS Code中使用会显示乱码,这是因为VS Code中有自己独立的字体配置。
打开VSCode设置,找到Terminal › Integrated: Font Family,修改为:FiraCode NF即可。

参考:Powershell增强:命令补全、主题美化及Git扩展保姆级教程

设置命令别名

第一步:
在某个目录下(建议在C盘根目录)新建文件cmd_auto.bat, 输入自己需要的常用命令的别名。
如下示例:

# bat设置命令别名脚本内容示例
@echo off
doskey ls=dir /b $*
doskey act=activate tensorflow-gpu $*
doskey tb=tensorboard --logdir $*
doskey pi=pip install $*

说明:doskey相当于Linux中的alias,等号左边是右边的别名;$*表示这个命令还可能有其他参数。

第二步:
修改注册表,使cmd启动时自动执行该bat文件。按组合键win+r键入regedit,进入地址:计算机\HKEY_CURRENT_USER\Software\Microsoft\Command Processor右边空白处右键新建->字符串值。如果没有Command Processor节点的话新建一个即可。

双击编辑该值,随便起个名字(比如AutoRun),数值数据里填刚才新建的bat文件的路径(如C:\cmd_auto.bat

确定后重启cmd,别名就可以用啦。
参考:window中的cmd中设置别名(alias)及设置快捷键打开cmd

批量启动应用

通过添加系统开机启动的方式可以实现多个应用的启动,但是这样会导致系统重启时间太长,体验非常不好。
可以在批处理脚本中编写多条start命令及参数实现一键启动多个应用,如下示例:

@rem 担心电脑配置不行,启动多个程序怕卡,可以设置时间延迟启动
@rem ping localhost -n 1 表示1秒时间延迟启动
@rem 命令行中的应用程序路径取值: 桌面图标右键 -> 属性 -> 快捷方式 -> 目标

@rem 启动IDEA
start "" "D:\JetBrains\IntelliJ IDEA 2018.1.4\bin\idea64.exe" & ping localhost -n 1
@rem 启动Chome
start "" "C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe" & ping localhost -n 2
@rem 启动navicat
start "" "D:\JavaCool\Navicat Premium 12\navicat.exe" & ping localhost -n 3

参考:windows一键启动多程序个程序

输入法中英文自动切换

当需要在多个不同的窗口来回切换中英文输入法时,可以使用KBLAutoSwitch实现中英文自动切换。

控制台执行git命令时中文显示乱码

中文乱码的根源在于Windows基于一些历史原因无法全面支持utf-8编码格式,并且也无法通过有效手段令其全面支持。
在命令行下输入以下命令:

$ git config --global core.quotepath false              # 显示 status 编码
$ git config --global gui.encoding utf-8                # 图形界面编码
$ git config --global i18n.commit.encoding utf-8        # 提交信息编码
$ git config --global i18n.logoutputencoding utf-8      # 输出 log 编码

参考:解决Git 在 Windows 下中文乱码的问题

常用命令

# 查看被占用端口对应的PID
$ netstat -aon|findstr "8080"

# 查看是哪个进程或者程序占用了端口
$ tasklist|findstr "8080"

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,在下面评论区告诉我^_^^_^