Windows 命令行(CMD-PowerShell)
1233 字
6 分钟
Windows 命令行(CMD-PowerShell)
引言
虽然图形界面越来越完善,但命令行依然是 Windows 中最强大的工具。批处理脚本能自动化重复操作,一行命令 能做 GUI 里点半天的事。本文总结了 CMD 和 PowerShell 的常用语法和技巧。
一、CMD 特殊符号详解
@ — 隐藏命令回显
@echo a ; 只输出 "a"echo b ; 先输出 "echo b",再输出 "b"% / %% — 变量引用
%var%— 引用普通变量%0~%9— 批处理参数(%0为脚本自身路径)%%i— for 循环中的变量
最常用的参数扩展:
| 写法 | 含义 |
|---|---|
%~dp0 | 当前脚本所在目录(最常用,没有之一) |
%~nx0 | 文件名 + 扩展名 |
%~n0 | 文件名(无扩展名) |
%~x0 | 扩展名 |
%~f0 | 完整路径 |
%~d0 | 盘符 |
%~p0 | 路径 |
%~s0 | 短路径(8.3 格式) |
:: 和 : — 标签与注释
:: 这是注释(推荐)rem 这也是注释(但会解析特殊字符):label ; 定义标签,可用 goto label 跳转重定向与管道
| 符号 | 含义 |
|---|---|
> | 覆盖写入文件 |
>> | 追加写入文件 |
< | 从文件读取输入 |
| | 管道:前一个命令的输出传给后一个命令 |
^ | 转义特殊字符(>, |, & 等) |
命令连接符
| 符号 | 含义 |
|---|---|
& | 无条件依次执行 |
&& | 前一条成功才执行 |
|| | 前一条失败才执行 |
() — 语句块
(echo 第一行echo 第二行)>test.txt二、申请管理员权限
批处理脚本中申请提权的标准模板,有三种常见风格:
最简版(一行搞定)
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit带提示版
@echo offchcp 65001>nulnet session 1>NUL 2>NUL||(mshta vbscript:CreateObject^("Shell.Application"^).ShellExecute^("%~0"," %* ::","","runas",1^)^(window.close^)&&exit)一闪而过版
cd/d"%~dp0"&(cacls "%SystemDrive%\System Volume Information" >nul 2>nul)||(start "" mshta vbscript:CreateObject^("Shell.Application"^).ShellExecute^("%~nx0"," %*","","runas",1^)^(window.close^)&exit)ShellExecute 参数说明
Shell.ShellExecute "程序", "参数", "目录", "操作", "窗口类型"操作参数: open(打开)、runas(管理员运行)、edit(编辑)、print(打印)
窗口类型: 0=隐藏 1=正常 2=最小化 3=最大化
三、CMD 代码页与乱码解决
临时切换
chcp 65001 ; UTF-8chcp 936 ; GBK(简体中文默认)chcp 950 ; 繁体中文 Big5永久修改注册表
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]"CodePage"=dword:0000fde9 ; 65001 = UTF-8四、findstr 命令详解
CMD 版的 grep:
findstr [参数] "字符串" [文件]
/B 行首匹配/E 行尾匹配/R 正则表达式/S 递归搜索/I 不区分大小写/N 显示行号/M 只显示文件名/V 不包含匹配的行/C:str 使用文字字符串(允许空格)五、wmic 命令参考
WMIC 是 Windows 强大的管理工具,可以查询和管理几乎一切系统资源。
进程管理
;列出所有进程及命令行参数wmic process get caption,commandline /value
;查询特定进程wmic process where caption="notepad.exe" get caption,commandline /value
;终止进程wmic process where name="qq.exe" call terminate硬件信息
;磁盘信息wmic DISKDRIVE get deviceid,Caption,size,InterfaceType
;CPU 信息wmic cpu get name,addresswidth,processorid
;内存信息wmic memlogical get totalphysicalmemory
;主板信息wmic BaseBoard get Manufacturer,Product,Version,SerialNumber服务管理
wmic SERVICE where name="tlntsvr" set startmode="Auto"wmic SERVICE where name="tlntsvr" call startservicewmic SERVICE where name="ShardAccess" call stopservice共享管理
;建立共享WMIC SHARE CALL Create "","test","3","TestShareName","","c:\test",0
;删除共享WMIC SHARE where name="C$" call delete六、PowerShell 命令别名速查
完整别名列表在 PowerShell 中运行
Get-Alias查看。
| 完整命令 | 别名 |
|---|---|
Get-ChildItem | dir, ls, gci |
Get-Content | cat, gc, type |
Get-Process | ps, gps |
Get-Service | gsv |
Set-Location | cd, chdir, sl |
Copy-Item | copy, cp, cpi |
Move-Item | move, mv, mi |
Remove-Item | del, rm, rd, ri |
ForEach-Object | %, foreach |
Where-Object | ?, where |
Select-Object | select |
Sort-Object | sort |
Get-Help | help, man |
Invoke-WebRequest | curl, wget, iwr |
Set-Clipboard | scb |
Get-Clipboard | gcb |
Stop-Process | kill, spps |
Start-Sleep | sleep |
New-Item | ni |
Select-String | sls |
七、net 命令参考
;用户管理net user 用户名 密码 /add ; 建立用户net user guest /active:yes ; 激活 guestnet localgroup administrators 用户名 /add ; 提权到管理员
;服务管理net start 服务名net stop 服务名
;共享net share ; 查看本地共享net use \\IP\ipc$ ; 建立 IPC 连接net view ; 查看局域网共享
;网络netstat -an ; 查看所有端口八、端口占用查询与终止
@echo offchcp 65001>nulset /p port=查询端口:
echo 端口占用:netstat -ano | findstr /r /c:":%port%.*LISTENING"
set /p pid=终止进程PID:taskkill /pid %pid% /fpause九、端口转发(netsh)
;显示所有端口代理netsh interface portproxy show all
;添加端口转发netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=2222 connectaddress=172.17.39.183 connectport=2222
;删除端口转发netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=2222
;重置所有规则netsh interface portproxy reset十、DLL 注册/反注册
;注册C:\Windows\system32\regsvr32.exe /s some-dllC:\Windows\SysWOW64\regsvr32.exe /s some-dll
;反注册C:\Windows\system32\regsvr32.exe /s /u some-dll十一、一键操作脚本
一键注销
@echo offif "%1"=="h" goto beginstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:beginlogoff一键锁屏
@echo offif "%1"=="h" goto beginstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:beginrundll32.exe user32.dll LockWorkStation一键关机
@echo offif "%1"=="h" goto beginstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:beginshutdown.exe -p关闭显示器
powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int PostMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::PostMessage(-1,0x0112,0xF170,2)不显示 CMD 窗口运行命令
@echo offif "%1"=="h" goto beginstart mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit:begin;在这里放要执行的命令winver十二、环境变量备份
用户 Path:D:\dependence\anaconda3;...android\platform-tools;...
系统 Path:C:\Windows;C:\Windows\system32;...%JAVA_HOME%\bin;...
ANDROID_SDK = D:\dependence\Sdk\android\JAVA_HOME = D:\dependence\Sdk\java\openjdk-11小结
命令行是 Windows 的瑞士军刀。掌握 CMD 符号、变量扩展和提权模板,你就能写出强大的批处理脚本。配合 PowerShell 的丰富命令集,几乎可以做任何系统管理操作。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
(目录) Windows 自定义设置指南
经验教程从 UAC 到注册表,从 Explorer 到命令行——一个重度 Windows 用户多年积累的配置技巧全系列。
2
Windows 实用工具脚本合集
经验教程ADB 连接模拟器、强删文件、ms-settings 快速跳转、QQ 缓存清理……日常 Windows 使用中最实用的小脚本汇总。
3
Windows 文件资源管理器(Explorer)
经验教程从符号链接到镜像劫持,从隐藏文件夹到任务栏美化,30+ 个实用技巧让你的 Windows Explorer 更好用。
4
Windows 右键菜单清理与定制
经验教程Win11 右键菜单太臃肿?第三方软件总是偷偷添加菜单项?本文教你清理、恢复、自定义右键菜单的所有技巧。
5
Windows 开机自启动的多种方式
经验教程注册表、计划任务、服务、启动目录……盘点 Windows 开机自启动的所有姿势,附跳过 UAC 的实用技巧。
随机文章随机推荐














