我在欧洲的 Windows cmd.exe 上运行此代码,并在这里使用我的语言的本地设置。所以我在目录名称中使用变音符号。
我尝试列出目录名称,它们显示正确。然后我将它们保存到文件中,但是当我在记事本中打开它时,变音符号不可读:例如,而不是Střední Čechy
I have Stýednˇ ¬echy
.
我做错了什么以及如何纠正?
@echo off
del directories.conf
FOR /F "delims=!" %%R IN ('dir * /b /a:d /o:n') DO (
IF EXIST "%%R\scenery" (
echo %%R
echo %%R >> directories.conf
) ELSE (ECHO NOT INCLUDED %%R)
)
Echo Directory list created...
pause
尝试使用 /u 开关启动 cmd.exe。这将导致 cmd 以 UTF-16 写入。
您还需要使用以下命令切换到代码页 1250(ANSI 代表中欧)chcp 1250
.
您可以在批处理脚本中执行此操作。我为你做了一个。结构是:
.\Jižní Morava
.\Jižní Morava\scenery
.\Pelhřimov
.\Pelhřimov\scenery
.\Nic moc výlet
.\Střední Čechy
.\Střední Čechy\scenery
和脚本:
@echo off
if _%1_==_main_ (
call :main
) else (
cmd /u /c "%0 main"
)
goto :eof
:main
chcp 1250
del directories.conf
for /F "delims=!" %%R in ('dir * /b /a:d /o:n') do (
if exist %%R\scenery (
echo %%R
echo %%R >> directories.conf
) else (
echo not included: %%R
)
)
echo Directory list created...
pause
goto :eof
我也推荐你阅读安德鲁多顿的很好的答案 https://stackoverflow.com/a/17177904/835945相关问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)