如何在CMD中正确输出非英文字符文件名并保存至TXT文件
解决CMD导出含非英文字符文件名乱码的问题
这问题我太熟了!CMD默认用的代码页(大多是GBK或者CP437)压根不支持阿拉伯语这类非拉丁字符,所以导出的文件名才会变成一堆???????.png。给你两个实用的解决办法:
方法1:修改CMD代码页为UTF-8
在你的批处理脚本开头添加切换编码的命令,让CMD用UTF-8来处理字符,这样就能正确识别阿拉伯语文件名了。修改后的脚本如下:
@echo off chcp 65001 >nul # 切换到UTF-8编码,>nul用来隐藏编码切换的提示信息 Setlocal EnableDelayedExpansion For /r . %%g in (*.png *.jpg) do echo %%~nxg >>listfile.txt
注意:保存这个批处理文件的时候,要选择UTF-8编码(如果用记事本保存,选“编码”为UTF-8),不然脚本本身的命令可能会出现乱码。
方法2:用PowerShell替代CMD(更稳定的Unicode支持)
PowerShell对Unicode字符的支持比CMD好太多,直接用下面的命令就能生成正确的文件列表:
Get-ChildItem -Recurse -Include *.png,*.jpg | Select-Object -ExpandProperty Name | Out-File -FilePath "listfile.txt" -Encoding UTF8
你可以直接在PowerShell窗口里执行这条命令,或者把它保存成.ps1脚本运行。生成的listfile.txt用支持UTF-8的编辑器打开(比如Notepad++、Windows记事本)就能看到正常的阿拉伯语文件名。
内容的提问来源于stack exchange,提问作者Mhwmd
相关产品推荐
相关产品推荐

