我需要在CMD控制台中识别出一个unicode特殊字符,特殊字符是: - (它就像普通的破折号但不是。它是 U + 2013 根据{{3}}的强>字符。
PS:您可以通过将任何文件下载到您的PC中来找到文件名中的字符...并非所有下载的文件名都具有该字符,但许多服务器通过下划线文件的文件名中的破折号对正常破折号进行转码不知道为什么......
如果我在文件名中有一个带有该字符的字符的MP3文件,然后我尝试在cmd中执行“dir / B”命令,那么我得到这个:
C:\>dir /B
this is a - test.mp3
在这一部分一切正常......但是如果我将文件名复制到剪贴板(直接来自“dir”输出)并尝试重命名文件会发生什么?:
C:\>REN "this is a - test.mp3" "badchar.mp3"
El sistema no puede encontrar el archivo especificado.
PS:英文错误说“系统无法找到指定的文件。”
那么我该如何识别这个char?
我已经尝试更改CHCP代码页,尝试启动unicode CMD(CMD / U),尝试使用“copy con”命令,尝试更换字符串字符...但没有...
我不想使用像大规模重命名器这样的第三方应用程序,因为严格来说我需要本身识别字符,因为我需要使用“dir”命令处理一些文件...
问题是“dir”命令识别出字符......但在那之后,如何用该文件测试任何其他命令?如果只有“dir”命令识别它,我需要将该文件打开到外部应用程序...... :(
感谢阅读。
详情:
示例文件名:
Ambassador Inc. – It's All Confusion.mp3
问题的详细示例脚本:
@echo off
FOR /F "tokens=*" %%# in ('DIR /B *.mp3') do (
Echo "%%#"
RENAME "%%#" "fucking unicode dash that i can't delete it.."
REM any_program.exe "%%#"
)
pause&exit
答案 0 :(得分:2)
似乎是“常见的unicode问题”。在控制台中选择光栅字体时 - unicode不可用。有两种方法可以解决这个问题:
打开控制台窗口属性,转到“字体”页面,选择“Lucida Console”或“Consolas”。 按“确定”。
使用替代控制台。 ConEmu例如(我是作者)。这种类型的软件解决了普通控制台窗口的许多问题。
现在你可以dir