如何在bat中更改目录

时间:2017-06-12 14:03:34

标签: batch-file directory

enter image description here

我在汉字环境中编程。我遇到了两个问题。首先,我无法使用bat更改目​​录。在bat文件中我cd D:,但这行实际上并没有改变目录。下一行工作目录返回C:。

并且,似乎cmd无法识别汉字。我试过chcp 65001,但它不起作用。如何让cmd能够识别汉字?

我做了很多谷歌搜索,但没有得到答案。提前谢谢。

2 个答案:

答案 0 :(得分:1)

除了更改驱动器的当前目录外,还可以/D切换到change current drive

cd /D D:

另一种方法:PUSHD更改当前目录/文件夹并存储以前的文件夹/路径以供POPD命令使用:

pushd D:

CMD Shell中的一些命令(在Windows控制台cmd内运行)即使在非中文环境中也能很好地识别中文字符,请参见下面的示例。例如,我的Windows设置是

  • 显示语言为英语(英国)和
  • 当前系统区域设置(Language for non-Unicode programs)是捷克语,即斯拉夫语(中欧)代码页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文件来完成此操作,前提是 .bat文件已保存并在同一ANSI代码页中运行(请参阅National Language Support (NLS) API Reference以选择代码页对于简体中文或繁体中文,分别为936950,或.bat文件保存在UTF-8(不含BOM)并在其cmd等效chcp 65001

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>

答案 1 :(得分:-1)

要批量更改目录(cmd),您必须执行以下操作:

cd D:\

在你的照片中你做过" D:"没有" \&#34 ;;这是错误的。

我希望我能帮到你。

PS:无论如何都没有将显示语言从中文更改为英文,因为cmd.exe是一个基于系统语言的Windows系统应用程序。如果您希望使用英语cmd,则必须使用英语更改系统语言或使用英语发行版重新安装Windows。