0
点赞
收藏
分享

微信扫一扫

Bat批处理echo输出乱码解决办法

Bat批处理echo输出乱码解决办法_批处理文件

getIpMac.bat

chcp 65001
@echo off & setlocal enabledelayedexpansion  
echo     =-----------------------------------------=
echo     =  本BAT只列出一个有线和一个无线的IP信息  =
echo     =           读取信息请耐心等待            =
echo     =-----------------------------------------=
echo.
for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "以太网:"') do (
    nbtstat -S | more +%%i >$
    set /p Str=<$
    del $
    for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set LIP=%%i
)
for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "WLAN:"') do (
    nbtstat -S | more +%%i >$
    set /p Str=<$
    del $
    for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set WIP=%%i
)
for /f "tokens=16" %%i in ('ipconfig /all ^| find /i "IPv4 地址"') do set ip=%%i ?

echo ===================================================1   
echo 当前时间:%DATE%   
echo ===================================================2   
echo 本机用户名为:%COMPUTERNAME%  
echo 本机有线IP为:%LIP%  
echo 本机无线IP为:%WIP%  
::echo 本机首选IP为:%ip% >>%tmp%\ip-mac.txt
echo 本机物理地址:  
echo ===================================================3
for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr
"..-..-..-..-..-.."') do (
    echo %%i %%j  
) 
echo ===================================================4  
ipconfig | findstr /i "以太网 无线 IPv4" 

pause

#Start %tmp%\ip-mac.txt
::Start %tmp%\ip-mac.txt

1.bat

chcp 65001
@echo off & setlocal enabledelayedexpansion  
echo     =-----------------------------------------=
echo     =  本BAT只列出一个有线和一个无线的IP信息  =
echo     =           读取信息请耐心等待            =
echo     =-----------------------------------------=
echo.
for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "以太网:"') do (
    nbtstat -S | more +%%i >$
    set /p Str=<$
    del $
    for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set LIP=%%i
)
for /f "tokens=1 delims=[]" %%i in ('%SystemRoot%\system32\nbtstat -S^|find /n "WLAN:"') do (
    nbtstat -S | more +%%i >$
    set /p Str=<$
    del $
    for /f "tokens=2 delims=[]" %%i in ('echo "!Str!"') do set WIP=%%i
)
for /f "tokens=16" %%i in ('ipconfig /all ^| find /i "IPv4 地址"') do set ip=%%i ?

echo ===================================================  >%tmp%\ip-mac.txt
echo 当前时间:%DATE%  >>%tmp%\ip-mac.txt
echo ===================================================  >>%tmp%\ip-mac.txt
echo 本机用户名为:%COMPUTERNAME% >>%tmp%\ip-mac.txt
echo 本机有线IP为:%LIP% >>%tmp%\ip-mac.txt
echo 本机无线IP为:%WIP% >>%tmp%\ip-mac.txt
::echo 本机首选IP为:%ip% >>%tmp%\ip-mac.txt
echo 本机物理地址: >>%tmp%\ip-mac.txt
echo ===================================================
for /f "tokens=1,3 delims=," %%i in ('getmac /v /nh /fo:csv ^| findstr
"..-..-..-..-..-.."') do (
    echo %%i %%j  >>%tmp%\ip-mac.txt
) 
echo ===================================================  >>%tmp%\ip-mac.txt
ipconfig | findstr /i "以太网 无线 IPv4">>%tmp%\ip-mac.txt

pause

Start %tmp%\ip-mac.txt


在批处理文件中,如果输出中文字符会出现乱码的情况,可能是因为控制台的字符编码不正确。可以在批处理文件中使用chcp命令来更改控制台的字符编码。

chcp命令的语法如下:

chcp [代码页]

其中,代码页是指字符编码的形式,例如936代表GB2312编码,65001代表UTF-8编码等。如果要将控制台字符编码设置成GB2312编码,可以使用以下命令:

chcp 936

如果要将控制台字符编码设置成UTF-8编码,可以使用以下命令:

chcp 65001

在设置了正确的控制台字符编码之后,使用ECHO命令输出中文字符就不会出现乱码了。

另外,还有一种情况是,如果批处理文件是在其他操作系统中创建的(例如Linux或MacOS),使用Windows的ECHO命令输出中文字符时,也有可能会出现乱码。这时可以将批处理文件的编码格式转换成Windows支持的编码格式(例如ANSI或UTF-8带BOM格式),然后再使用正确的控制台字符编码输出中文字符。可以使用诸如Notepad++这样的文本编辑器进行编码格式转换。


运行.bat文件乱码怎么办?Win11系统bat输出中文乱码的解决方法

1.运行bat批处理文件的时候,只要输出中文,就会出现乱码;

Bat批处理echo输出乱码解决办法_IP_02

2.选中出现问题的bat批处理文件,点击右键,在打开的菜单项中,选择【显示更多选项 - 编辑】;

Bat批处理echo输出乱码解决办法_字符编码_03

3.以记事本文件的方式打开bat批处理文件后,点击左上角的【文件】,在打开的下拉项中,选择【另存为】

Bat批处理echo输出乱码解决办法_批处理文件_04

4.另存为窗口,编码选择【ANSI】,然后点击【保存】即可;

Bat批处理echo输出乱码解决办法_字符编码_05

5.再次运行bat批处理文件,可以看到修改完编码之后,已经不会出现乱码的情况了。

Bat批处理echo输出乱码解决办法_字符编码_06

举报

相关推荐

0 条评论