【问题标题】:REG QUERY and accented characters in Windows XPWindows XP 中的 REG QUERY 和重音字符
【发布时间】:2014-12-14 22:07:38
【问题描述】:

如果路径字符串包含重音字符,我将无法访问我在 Windows XP 命令行中从注册表中查询的路径字符串。

for /f "tokens=4*" %a in ('reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Start Menu" ^| find /i "Common Start Menu"') do set test=%b
echo %test%

在西班牙语操作系统中,此代码正在返回:

%ALLUSERSPROFILE%\Men· Inicio

“·”应该是“ú”,所以我不能使用该路径,例如,如果我尝试将实际目录更改为它...

cd %test%

我最终得到“系统找不到指定的路径”错误。我尝试在代码页 (chcp) 之间切换,但无法解决。

【问题讨论】:

    标签: batch-file registry windows-xp


    【解决方案1】:

    尝试下一个代码 sn-p:

    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    MODE CON CP SELECT=1250 > NUL
    for /f "tokens=4*" %%a in ('reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Start Menu" ^| find /i "Common Start Menu"') do set test=%%b
    MODE CON CP SELECT=852 > NUL
    set xest=!test:%%allusersprofile%%=%allusersprofile%!
    @echo "%xest%"
    @dir /AD "%xest%"
    endlocal
    

    由于我在捷克语窗口上,您应该将MODE CON CP SELECT=xxx 命令中的代码页修改为您的语言环境。供您参考:1250=Windows ANSI 中欧,852=OEM 中欧;我猜你的可能分别是1252 (ANSI Latin 1; Western European for Windows) and 850 (OEM Multilingual Latin 1; Western European for DOS)

    【讨论】:

      【解决方案2】:

      命令提示符在 ANSI 中工作。也许将其设置为 unicode 可能会有所帮助。

      cmd /u /k <commandname>
      

      来自帮助

      控制台代码页 代码页是 256 个字符代码到单个字符的映射。不同的代码页包含不同的特殊字符,通常为一种语言或一组语言定制。

      与每个控制台相关的是两个代码页:一个用于输入,一个用于输出。控制台使用其输入代码页将键盘输入转换为相应的字符值。它使用其输出代码页将各种输出函数写入的字符值转换为控制台窗口中显示的图像。应用程序可以使用 SetConsoleCP 和 GetConsoleCP 函数来设置和检索控制台的输入代码页,并使用 SetConsoleOutputCP 和 GetConsoleOutputCP 函数来设置和检索其输出代码页。

      本地计算机上可用代码页的标识符存储在注册表中的以下键下。

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage

      使用命令

      chcp <codepage>
      

      mode cp <codepage>
      

      虽然850(国际英语也是西欧)。

      确保在 Regioanal Optons 中正确设置了区域设置。还要检查非 uni 的设置

      【讨论】:

      • 命令提示符在 OEM 中有效,在 ANSI 中无效……而且 Windows CMD shell 不支持 Unicode; CMD /ACMD /U 导致 仅输出 ANSI 或 UNICODE 字符:这些选项将影响 管道重定向 到文件。跨度>
      猜你喜欢
      • 1970-01-01
      • 2011-06-22
      • 2014-04-07
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2017-06-07
      相关资源
      最近更新 更多