Windows 笔记
Windows Shortcut
Windows 快捷键是提高效率的好帮手,这里记录一些常用的快捷键:
Alt + Tab = 切换窗口(可以实现快速在两个窗口间切换)
Win + D = 显示桌面
Win + E = 打开资源管理器
Win + R = 打开运行
Win + X = 打开快捷菜单
Win + L = 锁定屏幕
Win + I = 打开设置
Win + S = 打开搜索
Win + Tab = 切换任务视图
Windows 实用技巧
运行命令
在 Windows 中,可以通过运行命令来快速打开一些常用的应用程序或文件夹。
通过 Win + R 快捷键可以快速打开运行窗口。
常用运行命令:
explorer: 打开资源管理器cmd: 打开命令提示符powershell: 打开 PowerShellnotepad: 打开记事本calc: 打开计算器mspaint: 打开画图control: 打开控制面板taskmgr: 打开任务管理器regedit: 打开注册表编辑器ms-settings:: 打开设置msconfig: 打开系统配置services.msc: 打开服务管理器msinfo32: 打开系统信息
特殊文件夹
在 Windows 中,有一些文件夹可以通过shell:命令来访问,这些文件夹包括:
shell:startup: 开机启动文件夹(启动项)
shell:common startup: 所有用户的开机启动文件夹
放入此文件夹的程序会在系统启动时自动运行。
shell:sendto: "发送到" 菜单中的文件夹
可以在这里放入应用快捷方式,这样就可以右键发送到这个应用,和直接拖动文件到应用一样。
shell:programs: 开始菜单中的程序文件夹
shell:common programs: 所有用户的开始菜单中的程序文件夹
shell:appsfolder: 应用程序文件夹
这里存放了所有的应用程序快捷方式。
shell:quick launch: 快速启动栏
它的子目录
User Pinned-->TaskBar是任务栏的快捷方式。shell:appdata: 应用程序数据文件夹
shell:recent: 最近打开的文件
shell:favorites: 收藏夹
shell:fonts: 字体文件夹
shell:start menu: 开始菜单
还有一些特殊文件夹可以通过环境变量来访问。
%AppData% =
C:\Users\用户名\AppData\Roaming用于存储应用程序的数据。
%LocalAppData% =
C:\Users\用户名\AppData\Local用于存储应用程序的本地数据。
%UserProfile% =
C:\Users\用户名用户文件夹。
%ProgramFiles% =
C:\Program Files程序文件夹。
%SystemRoot% =
C:\WindowsWindows 系统文件夹。
%Public% =
C:\Users\Public公共文件夹。
%Temp% / %Tmp% =
C:\Users\用户名\AppData\Local\Temp临时文件夹。
环境变量-添加命令行程序
最常需要修改环境变量的场景就是修改 PATH 变量,可以加入新的路径,这样就可以在任意位置运行这个路径下的程序。
打开环境变量的方法是:
Win + R --> 输入
sysdm.cpl--> 高级 --> 环境变量Win + X --> 系统 --> 高级系统设置(右边列表) --> 环境变量
打开后通过以下方法来修改环境变量:
系统环境变量: 可以通过
系统属性-->高级-->环境变量-->PATH来添加修改系统环境变量。用户环境变量: 可以通过
用户属性-->环境变量来修改用户环境变量。
注意: 添加的路径应该是一个目录(无需目录结束符),系统会自动寻找这个目录下的可执行文件,如果直接添加可执行文件路径,是无法生效的。
Windows 命令
基础常用命令
shutdown = 关机
/s关机/r重启/a取消关机/t设置延迟时间/f强制关闭/l= 注销例如:
shutdown /s /t 60表示 60 秒后关机。cls = 清屏
wmic = 用于查询和管理系统信息(Windows Management Instrumentation Command-line)
wmic cpu get name获取 CPU 名称wmic baseboard get product,Manufacturer,version,serialnumber获取主板信息,包括产品名、制造商、版本和序列号wmic bios get serialnumber获取 BIOS 序列号
CMD 常用命令
文件与目录操作
| 功能 | CMD 命令 | 说明 |
|---|---|---|
| 查看当前目录文件 | dir | 类似 Linux 的 ls,列出当前路径下所有文件和目录。 |
| 切换目录 | cd <路径> | 切换到指定路径。例如:cd C:\Windows。 |
| 查看当前路径 | cd | 显示当前工作目录。 |
| 创建文件 | echo > <文件名> | 创建一个空文件。例如:echo > test.txt。 |
| 创建目录 | mkdir <目录名> | 创建一个新目录。 |
| 删除目录 | rmdir <目录名> | 删除空目录。如果目录非空,使用 rmdir /s。 |
| 删除文件 | del <文件名> | 删除指定文件。例如:del test.txt。 |
| 复制文件 | copy <源文件> <目标路径> | 复制文件。例如:copy test.txt D:\Backup。 |
| 移动文件 | move <源文件> <目标路径> | 移动文件。例如:move test.txt D:\Docs。 |
| 重命名文件/目录 | rename <旧名> <新名> | 重命名文件或目录。 |
注意: 在 CMD 中,
cd命令只能切换目录,不能跨盘符切换目录。如果要切换到其他盘符,需要/d参数。例如:
cd /d D:\切换到 D 盘。
系统与任务管理
| 功能 | CMD 命令 | 说明 |
|---|---|---|
| 查看当前时间 | time | 显示或修改系统时间。 |
| 查看当前日期 | date | 显示或修改系统日期。 |
| 查看系统信息 | systeminfo | 显示系统详细信息,例如内存、操作系统版本等。 |
| 查看网络配置信息 | ipconfig | 显示网络配置信息 |
| 显示进程列表 | tasklist | 列出当前运行的所有进程。 |
| 结束指定进程 | taskkill /im <进程名> | 结束指定的进程。例如:taskkill /im notepad.exe。 |
| 清屏 | cls | 清除屏幕显示的内容 |
磁盘与文件检查
| 功能 | CMD 命令 | 说明 |
|---|---|---|
| 显示磁盘列表 | wmic logicaldisk get name | 列出所有逻辑磁盘(如 C: D:)。 |
| 检查磁盘 | chkdsk <盘符> | 检查磁盘错误。例如:chkdsk C:。 |
| 显示文件内容 | type <文件名> | 显示文件的内容。例如:type test.txt。 |
| 搜索文件 | dir /s <文件名> | 搜索指定文件。例如:dir /s test.txt。 |
网络相关
| 功能 | CMD 命令 | 说明 |
|---|---|---|
| 查看网络连接状态 | netstat | 显示当前网络连接状态。 |
| 测试网络连通性 | ping <目标地址> | 测试与目标地址的网络连接。例如:ping 8.8.8.8。 |
| 跟踪路由 | tracert <目标地址> | 显示数据包到目标的路由。例如:tracert www.google.com。 |
其他常用命令
| 功能 | CMD 命令 | 说明 |
|---|---|---|
| 查看帮助 | <命令> /? | 显示指定命令的帮助。例如:dir /?。 |
| 退出 CMD | exit | 关闭 CMD 窗口。 |
| 暂停输出 | pause | 暂停当前命令执行,按任意键继续。 |
| 显示环境变量 | set | 显示所有环境变量。 |
| 设置环境变量 | set <变量名>=<值> | 设置环境变量。例如:set PATH=C:\MyPath。 |
| 查看系统路径 | echo %PATH% | 显示系统的 PATH 环境变量。 |
CMD BAT 脚本
基础语法
bat 脚本是一种批处理文件,可以用于批量处理任务。可以通过建立一个 .bat 文件,然后在 cmd 中运行这个文件来执行一系列命令。
bat 脚本和 linux 的 shell 脚本类似,可以参考着一起学习 《Bash 脚本教程》
bat 脚本基础语法:
@echo off: 关闭命令回显setlocal: 开始局部变量(局部作用域)echo: 输出信息pause: 暂停通常放在脚本的最后,以便查看执行结果。(此时会有一个提示,按任意键继续)
exit: 退出脚本exit /b %errorlevel%退出脚本并返回退出码::: 注释if: 条件判断例如:
if exist file.txt echo 文件存在goto: 跳转例如:
goto :label跳转到:label标签处:label: 标签
rmdir: 删除目录例如:
rmdir /s /q dir删除目录/s删除目录及其子目录/q安静模式
del: 删除文件例如:
del /q file.txt删除文件/q安静模式
copy: 复制文件例如:
copy file1.txt file2.txt复制文件call another.bat: 调用另一个 bat 文件并等待其执行完成,返回后可以通过
%errorlevel%捕获退出码。
实用技巧
获取当前脚本所在目录
可以通过特殊变量和命令获取当前脚本的执行位置(脚本所在的目录路径)。
@echo off
echo 当前脚本所在目录是: %~dp0
pause%~dp0:获取当前脚本的执行位置d驱动器号,例如C:\p路径,例如C:\Users\0脚本名称,例如test.bat
避免中文乱码
批处理文件默认使用控制台的代码页,通常是 437 或 936(中文)。设置正确的代码页可以避免乱码。
@echo off
:: 设置控制台为 UTF-8
chcp 65001 >nul
:: 示例输出中文
echo 中文测试
pausechcp 65001:设置控制台代码页为 UTF-865001是 UTF-8 的代码页。类似的还有936(简体中文)。
PowerShell
PowerShell 提供的命令很多都有简写,比如 Get-Process 可以简写为 gps
常用命令
Get-Command: 查看命令的路径类似于 Linux 的
which命令。可以利用这个来判断命令是否存在,如:
powershellif (-Not (Get-Command "magick" -ErrorAction SilentlyContinue)) { Write-Host "ImageMagick is not installed." exit 1 }Get-ChildItem: 获取文件或者目录Get-ChildItem -Path C:\查看 C 盘文件Get-ChildItem Env:查看环境变量-Recurse参数可以递归查看文件-Filter参数可以过滤文件返回的值可以继续操作,如:
$result.Count查看文件数量$result | ForEach-Object { $_.Name }查看文件名
Get-Content your_log_file.log -Wait: 实时查看文件内容-Wait参数可以实时查看文件内容Set-Location: 切换目录$env:<EnvName>: 查看环境变量$env:Path -split ';'查看 Path 环境变量,以分号分隔
查看系统信息
Get-WmiObject 命令可以用来获取 Windows 系统的各种信息,包括硬件、操作系统等,常用的查询包括:
Get-WmiObject win32_baseboard: 获取主板信息Get-WmiObject Win32_BIOS: 获取 BIOS 信息Get-WmiObject Win32_ComputerSystem: 获取计算机系统信息Get-WmiObject Win32_OperatingSystem: 获取操作系统信息Caption: 操作系统名称Version: 操作系统版本BuildNumber: 操作系统构建号Manufacturer: 制造商InstallDate: 安装日期
默认情况下信息多时,显示比较混乱,可以配合 Format-List 来格式化输出,如:
Get-WmiObject Win32_OperatingSystem | Format-List *权限设置
Get-ExecutionPolicy: 查看脚本执行策略Restricted禁止执行任何脚本RemoteSigned允许本地脚本,但下载的脚本需要签名Unrestricted允许执行任何脚本AllSigned所有脚本都需要签名Set-ExecutionPolicy: 设置脚本执行策略Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser设置当前用户脚本执行策略为不受限制(允许执行任何脚本)Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser恢复默认脚本执行策略
文件权限
Get-Acl: 查看文件权限例如:
Get-Acl C:\Windows
网络操作
Test-Connection -ComputerName www.example.com: 测试网络连接-count 4参数可以指定测试次数-quiet参数可以只显示结果Invoke-WebRequest -Uri "https://www.example.com": 下载网页-OutFile参数可以保存文件,还支持更多请求参数,如-Method、-Headers等。curl: 下载文件(从 Windows 10 1803 版本开始,PowerShell 自带了curl命令)例如:
curl -o file.zip https://example.com/file.zip需要指定
-o参数来保存文件,否则会直接输出文件信息到控制台。注意: 默认情况下,Windows 的
curl命令是Invoke-WebRequest的别名,所以使用方法和Invoke-WebRequest一样。如果需要使用 Linux 的
curl命令,可以使用curl.exe来调用,或者用Remove-Item Alias:curl来删除curl别名。Start-BitsTransfer -Source "https://example.com/file.zip" -Destination "C:\file.zip": 后台下载文件BITS(后台智能传输服务)也可以用于下载文件,适合大文件下载,后台下载文件,不会阻塞 PowerShell。
Test-NetConnection -ComputerName www.example.com -Port 443: 测试端口连接更全面的测试工具,可测试指定的端口或服务。
Resolve-DnsName -Name www.example.com: 解析域名-Type参数可以指定解析类型,如A、AAAA、MX、NS等。
进程管理
tasklist: 查看进程列表taskkill: 结束进程例如:
taskkill /f /im notepad.exe结束记事本进程Get-Process: PowerShell 查看进程例如:
Get-Process chrome查看 Chrome 进程Stop-Process: PowerShell 结束进程例如:
Stop-Process -Name notepad结束记事本进程
实用技巧
更新环境变量
更新 Path 变量后,不想重启 PowerShell,但想里面的命令生效,可以使用以下命令,来立刻更新环境变量。
$env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine")PowerShell 脚本
基础语法
脚本参数
在 PowerShell 中,可以通过参数来传递数据,通常它们是脚本的输入。
param (
[Parameter(Mandatory=$true)]
[string]$name
)param: 定义参数[Parameter(Mandatory=$true)]: 参数必须传递[string]: 参数类型
运算符
调用运算符
&: 调用命令例如:
& "C:\Program Files\Notepad++\notepad++.exe"如果是动态调用,需要使用
&运算符,否则可能不会被识别为命令。bash$scriptPath = "C:/scripts/my_script.ps1" & $scriptPath
函数
定义函数
function Get-Hello {
param (
[string]$name
)
Write-Host "Hello, $name!"
}调用函数
Get-Hello -name "World"条件判断
if
if 判断语句用于根据条件执行不同的代码块。支持多种条件判断,包括:
-eq: 等于-ne不等于-gt大于-lt小于-ge大于等于-le小于等于-Not非
$LASTEXITCODE
$LASTEXITCODE 变量保存了上一个命令的退出码。
$command = "echo Hello"
Invoke-Expression $command
if ($LASTEXITCODE -eq 0) {
Write-Host "Command executed successfully."
} else {
Write-Host "Command failed."
}文件及目录
Test-Path: 测试路径是否存在-Path参数可以指定路径例如:
Test-Path -Path "C:\Windows"Join-Path: 接路径例如:
Join-Path -Path "C:\" -ChildPath "Windows"New-Item: 创建文件或目录例如:
New-Item -ItemType Directory -Path "C:\Temp" | Out-Null
输出与日志
输出命令
Write-Host: 输出信息例如:
Write-Host "Hello, World!"Write-Output: 管道输出数据
