use*_*649 7 encoding cmd batch-file
我在欧洲的Windows cmd.exe上运行此代码,我在这里使用本地设置,用于我的语言.所以我在目录的名称中使用变音符号.
我尝试列出目录的名称,并正确显示.然后我将它们保存到文件中,但是当我在记事本中打开它时,变音符号是不可读的:例如,而不是St?ední ?echy我有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
Run Code Online (Sandbox Code Playgroud)
Alo*_*dal 12
尝试使用/ u开关启动cmd.exe.这将导致cmd以UTF-16写入.
您还需要使用切换到代码页1250(ANSI for Central Europe)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
Run Code Online (Sandbox Code Playgroud)
和剧本:
@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
Run Code Online (Sandbox Code Playgroud)
另外,我建议你阅读andrewdotn对相关问题的出色答案.
| 归档时间: |
|
| 查看次数: |
8782 次 |
| 最近记录: |