我在一个汉字环境中编程。我遇到了两个问题。首先,我不能使用bat更改目录。在bat文件I cd D:中,但这一行实际上并不更改目录。下一行工作目录返回到C:。
而且,cmd似乎无法识别中文字符。我尝试了chcp 65001,但它不工作。如何使cmd能够识别汉字?
我用谷歌搜索了很多次,但没有得到完全的答案。提前谢谢。
发布于 2017-06-13 04:06:34
除了更改驱动器的当前目录外,还可以使用/D
开关切换到change current drive:
cd /D D:
另一种方法:PUSHD
更改当前目录/文件夹并存储以前的文件夹/路径,以供POPD
命令使用:
pushd D:
CMD Shell (在Windows控制台cmd
中运行)中的一些命令即使在非中文环境中也能很好地识别中文字符,请参见下面的示例。例如,我的Windows设置是
CP852
/ANSI1250
.请注意,我有没有特殊的CJK support set up!不幸的是,在CMD shell中仍然有用于unicode的very limited support。
C:> reg query HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage | find "CP"
ACP REG_SZ 1250
OEMCP REG_SZ 852
MACCP REG_SZ 10029
C:\> chcp
Active code page: 852
C:\> pushd "D:\bat\Unusual Names\CJK (中文(繁體))"
D:\bat\Unusual Names\CJK (中文(繁體))> dir /B / S
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)
D:\bat\Unusual Names\CJK (中文(繁體))\装备女印度舞娘时装上衣
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\chinese traditional.txt
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\二月.mp3
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\女
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\装备女印度舞娘时装上衣.rtf
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\女\印度舞娘时装上衣
D:\bat\Unusual Names\CJK (中文(繁體))\装备女印度舞娘时装上衣\inside_CJK.txt
D:\bat\Unusual Names\CJK (中文(繁體))> popd
C:\> dir /B /S "D:\bat\Unusual Names\CJK (中文(繁體))"
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)
D:\bat\Unusual Names\CJK (中文(繁體))\装备女印度舞娘时装上衣
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\chinese traditional.txt
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\二月.mp3
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\女
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\装备女印度舞娘时装上衣.rtf
D:\bat\Unusual Names\CJK (中文(繁體))\中文(繁體)\女\印度舞娘时装上衣
D:\bat\Unusual Names\CJK (中文(繁體))\装备女印度舞娘时装上衣\inside_CJK.txt
编辑。即使使用.bat
文件也可以做到这一点,前提是文件保存在相同的ANSI代码页中并在其中运行(请参见,分别为简体中文或繁体中文选择代码页,即936
或950
),或者.bat
文件保存在<代码>D35(没有<代码>C36)中,并在其等效的<代码>C38下运行。
C:\Utils> chcp 65001
Active code page: 65001
C:\Utils> type D:\bat\SO\q44501393.bat
@ECHO ON
pushd "D:\bat\Unusual Names\CJK (中文(繁體))"
dir /B *.txt
@rem next command opens "中文(台灣).txt" in default app for `.txt` files
start "" "中文(台灣).txt"
C:\Utils> D:\bat\SO\q44501393.bat
C:\Utils> pushd "D:\bat\Unusual Names\CJK (中文(繁體))"
D:\bat\Unusual Names\CJK (中文(繁體))> dir /B *.txt
中文(台灣).txt
D:\bat\Unusual Names\CJK (中文(繁體))> start "" "中文(台灣).txt"
D:\bat\Unusual Names\CJK (中文(繁體))> popd
C:\Utils>
发布于 2017-06-13 01:28:11
要批量更改目录(cmd),您必须执行以下操作:
cd D:\
在你的图片中,你做了"D:“而没有"\";这是错误的。
我希望我能帮到你。
PS:因为cmd.exe是一个基于系统语言的Windows系统应用程序,所以没有办法将显示语言从中文更改为英文。如果您想使用英语版本的cmd,则必须更改英语版本的系统语言,或者使用英语版本重新安装Windows。
https://stackoverflow.com/questions/44501393
复制相似问题