跳至主要內容

cmd

chanchaw大约 8 分钟windows

中文乱码

  1. 设置地区和语言
    • 同时按【Windows+ i】键,打开【设置】-【时间和语言】
    • 左侧面板选择【语言】: -找到【Windows显示语言】,确保【中文(中国)】是首选 -找到【添加首选的语言】,确保【中文(中国)】是首选
    • 左侧面板选择【区域】: -找到【国家或地区】,确保是【中国】
  2. 【非Unicode语言】改成中文:
    • 【控制面板】-【时钟和区域】-【区域】-【管理】-【更改系统区域设置】
    • 设为【中文简体】
    • 更改系统区域设置 > 勾选 “使用 unicode UT-8提供全球语言支持”,系统会要求重启电脑
    • 但是会出现问题,MobaXterm 的中文会乱码,所以后来还是没有使用本方法
  3. 可以使用临时的方法,在 cmd 中通过命令 chcp 65001 手动调整本次为使用 utf8 字符集,关闭当前窗口即失效
  4. 还是乖乖用回 cmder 吧

查看java进程并关闭

执行下面脚本显示所有 java 进程,并且可以杀掉进程,在脚本的开始还解决了中文乱码问题

@echo off
chcp 65001 >nul
setlocal EnableDelayedExpansion

echo.
echo 正在使用 jps 列出 java 进程...
echo.

echo PID      监听端口     主类名 / JAR 路径
echo ──────── ──────────── ──────────────────────────────────────────────────────

for /f "tokens=1,*" %%a in ('jps -l ^| findstr /v "Jps"') do (
    set "PID=%%a"
    set "MAIN=%%b"

    set "PORTS="

    REM 查找该 PID 的监听端口
    for /f "tokens=2,3,5" %%p in ('netstat -ano ^| findstr /r /c:":.*LISTENING" ^| findstr "\<!PID!\>"') do (
        if "%%r"=="!PID!" (
            for /f "tokens=2 delims=:" %%z in ("%%p") do (
                if not defined PORTS (
                    set "PORTS=%%z"
                ) else (
                    set "PORTS=!PORTS!,%%z"
                )
            )
        )
    )

    if not defined PORTS set "PORTS=—"

    REM 格式化输出:PID 占8位,端口占12位,其余为主类/JAR
    echo !PID!    !PORTS!          !MAIN!
)

echo ──────── ──────────── ──────────────────────────────────────────────────────
echo.

:kill_choice
set "TARGET_PID="
set /p TARGET_PID=要结束哪个进程?请输入 PID(直接回车退出):

if "!TARGET_PID!"=="" (
    echo 已退出。
    goto :end
)

REM 验证 PID 是否存在于本次列出的 java 进程中
set "FOUND="
for /f "tokens=1" %%x in ('jps ^| findstr /b /c:"!TARGET_PID! "') do set "FOUND=1"

if not defined FOUND (
    echo 错误:PID !TARGET_PID! 不在当前 java 进程列表中,或已结束。
    goto :kill_choice
)

echo.
echo 将要强制结束进程:!TARGET_PID!
echo 请确认(Y/N):
set "confirm="
set /p confirm=

if /i "!confirm!"=="y" (
    taskkill /PID !TARGET_PID! /F >nul 2>&1
    if !errorlevel! equ 0 (
        echo [成功] PID !TARGET_PID! 已结束
    ) else (
        echo [失败] 结束进程失败,可能需要以管理员身份运行此脚本
    )
) else (
    echo 已取消。
)

echo.
goto :kill_choice

:end
echo.
pause

端口号杀进程

将下面代码保存为 killPort.bat,执行后杀掉指定端口的进程

@echo off
chcp 65001 >nul
title 端口进程杀手 - Windows 10

:START
echo ==========================================
echo   端口进程杀手 (Port Killer)
echo ==========================================
echo.
set /p PORT="请输入要查杀的端口号 (例如 8080): "

if "%PORT%"=="" (
    echo [错误] 端口号不能为空!
    echo.
    goto START
)

echo.
echo [正在查询] 正在查找占用端口 %PORT% 的进程...

:: 使用 netstat 查找端口,并用 findstr 过滤出 LISTENING 状态
:: 格式通常为: TCP    0.0.0.0:8080    0.0.0.0:0    LISTENING    1234
:: 我们提取最后一列作为 PID
for /f "tokens=5" %%a in ('netstat -ano ^| findstr /i ":%PORT%" ^| findstr "LISTENING"') do (
    set "PID=%%a"
)

if "%PID%"=="" (
    echo [结果] 未找到占用端口 %PORT% 的进程,或者该端口未被监听。
    echo.
    pause
    goto START
)

echo [发现目标] 找到进程 PID: %PID%
echo.
set /p CONFIRM="确定要强制结束进程 %PID% 吗?(Y/N): "
if /i not "%CONFIRM%"=="Y" (
    echo [操作取消] 用户取消了操作。
    echo.
    goto START
)

echo.
echo [执行中] 正在终止进程 %PID% ...
taskkill /F /PID %PID%

if %ERRORLEVEL% EQU 0 (
    echo [成功] 进程 %PID% 已成功被杀掉!
    echo 端口 %PORT% 现在应该已释放。
) else (
    echo [失败] 无法终止进程 %PID%。
    echo 请确保您是以“管理员身份”运行此脚本。
)

echo.
pause
goto START

批量解压zip文件

将下面代码制作为 bat 文件,执行后会自动解压当前目录下的所有 zip 文件到临时目录 unzip_temp

@echo off
:: 创建一个临时文件夹用于解压
set "tempDir=unzip_temp"
:: 创建目标解压目录
mkdir "%tempDir%"

:: 遍历当前目录下的所有 zip 文件
for %%f in (*.zip) do (
    echo 正在解压 %%f 到 "%tempDir%\%%~nf"
    mkdir "%tempDir%\%%~nf"
    powershell -command "Expand-Archive -Path '%%f' -DestinationPath '%tempDir%\%%~nf' -Force"
)

echo 所有文件已解压到 "%tempDir%" 目录中。
pause

查看端口号是否被占用

查看端口号是否被占用。最后一列显示了PID,然后到任务管理器中找到该PID 的进程,通过任务管理器菜单中的“查看”的“显示PID”和“命令行”可以找到对应的进程,以及进程使用的可执行文件

netstat -aon|findstr "8080"

打开启动项

在开始 > 运行中输入:shell:startup

打开本地组策略编辑器

在开始 > 运行中输入:gpedit.msc

高级系统设置

在开始 > 运行中输入:sysdm.cpl

本地安全策略

在开始 > 运行中输入:secpol.msc

设备管理器

在开始 > 运行中输入:devmgmt.msc

telnet 测试端口是否连通

# 通过组合键 ctrl+] 然后 quit 退出 telnet
telnet 10.9.0.62 7575

修改cmd默认样式

设置cmd默认样式,保存下面代码为 reg 文件,双击执行

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"CodePage"=dword:0000fde9
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="Consolas"
"ScreenBufferSize"=dword:232900d2
"WindowSize"=dword:002b00d2


# 修改RDM默认端口
@color 0A
@title 修改远程桌面端口号 by wjshan0808
@echo off
echo 请输入端口号
set /p port=
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp" /v PortNumber /t reg_dword /d %port% /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t reg_dword /d %port% /f
exit

批量关闭放行端口

@echo off 
color 1f 
title 关闭常见的危险端口
echo 正在开启Windows防火墙
echo.
netsh advfirewall set currentprofile state on > nul
netsh advfirewall set publicprofile state on > nul
netsh advfirewall set allprofiles state on
echo. 
echo 防火墙已经成功启动。
echo. 
echo. 
pause 
cls 
echo 正在关闭常见的危险端口,请稍候… 
echo. 
echo 正在关闭135,139,445端口… 
netsh advfirewall firewall add rule name="135_139_445" protocol=TCP dir=in localport=135,139,445 action=block
echo 正在关闭137,138端口… 
netsh advfirewall firewall add rule name="137_138" protocol=UDP dir=in localport=137,138 action=block
echo 常见的危险端口已经关闭。
echo.  
echo 打开8080端口 
netsh advfirewall firewall add rule name="允许8080端口接入" protocol=TCP dir=in localport=8080 action=allow
echo 打开8086端口 
netsh advfirewall firewall add rule name="允许8080端口接入" protocol=TCP dir=in localport=8086 action=allow
echo 打开1433端口 
netsh advfirewall firewall add rule name="允许1433端口接入" protocol=TCP dir=in localport=1433 action=allow
echo 打开19833端口 
netsh advfirewall firewall add rule name="允许19833端口接入" protocol=TCP dir=in localport=19833 action=allow
echo 打开16033端口 
netsh advfirewall firewall add rule name="允许16033端口接入" protocol=TCP dir=in localport=16033 action=allow
echo. 
echo. 
echo. 
echo. echo. 
echo 按任意键退出。 
pause>nul

去除win7 chrome 提示

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Google\Chrome]
"SuppressUnsupportedOSWarning"=dword:00000001

清除DNS缓存

在 cmd 中执行下面命令

ipconfig /flushdns

杀掉指定名称的进程

taskkill /F /IM nginx.exe

按照端口号杀进程

@echo off
set port=7076
for /f "tokens=1-9" %%i in ('netstat -ano ^| findstr "%port%"') do (
taskkill -f -pid %%m
)
echo 已成功关闭端口
exit

查看指定名称的进程

tasklist | findstr "nginx"

各种查看系统/硬件信息

# 系统属性
sysdm.cpl

# winmsd系统信息
start msinfo32

# 设备管理器
devmgmt.msc

# 在性能选项卡中看物理内存和 pagefile
taskmgr

# 查看内存大小
winver

# 查看日志
eventvwr.msc

# 计算机管理
compmgmt.msc

取消休眠删除hiberfil.sys

C盘中该文件 hiberfil.sys 很大,可通过 powercfg -h off 关闭休眠功能,即删除该文件,通过 powercfg -h on 重新启用该功能

打开各种系统服务

regedit.exe----注册表 msconfig.exe---系统配置实用程序
services.msc---本地服务设置 regedit.exe----注册表 osk------------打开屏幕键盘
gpedit.msc-----组策略
Nslookup-------IP地址侦测器

打开远程桌面

在开始 > 运行中执行:mstsc

关机与重启

2秒后关闭电脑:shutdown -s -t 2 2秒后重启电脑:shutdown -r -t 2

清理系统垃圾

@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q  %systemdrive%\*.tmp
del /f /s /q  %systemdrive%\*._mp
del /f /s /q  %systemdrive%\*.log
del /f /s /q  %systemdrive%\*.gid
del /f /s /q  %systemdrive%\*.chk
del /f /s /q  %systemdrive%\*.old
del /f /s /q  %systemdrive%\recycled\*.*
del /f /s /q  %windir%\*.bak
del /f /s /q  %windir%\prefetch\*.*
rd /s /q %windir%\temp & md  %windir%\temp
del /f /q  %userprofile%\cookies\*.*
del /f /q  %userprofile%\recent\*.*
del /f /s /q  "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q  "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q  "%userprofile%\recent\*.*"
echo 清除系统LJ完成!
echo. & pause

查看端口号占用情况

netstat -aon|findstr "7070"

可以看到占用了7075的进程是10768,使用命令 tasklist|findstr "10768" (10768显示占用端口号的进程的编号) 显示该进程的具体信息,可以看到是 wechat.exe 占用了该端口

共享相关

# 查看共享的目录
net share

# 删除指定名称的共享目录
# 下面的 entertainment 是共享名称
Net share entertainment /delete

# win10从18.xxx版本开始默认关闭 SMB1.0,会导致局域网共享文件夹、打印机失败。包括WIN11
# 使用下面方法解决该问题
# 查看 SMB1.0 是否开启,服务名称是:SMB1Protocol、SMB1Protocol-Client、SMB1Protocol-Server
dism /online /format:table /get-features

# 开启服务
dism /online /enable-feature /featurename:SMB1Protocol
dism /online /enable-feature /featurename:SMB1Protocol-client