首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在bat中更改目录

如何在bat中更改目录
EN

Stack Overflow用户
提问于 2017-06-12 22:03:34
回答 2查看 5.2K关注 0票数 0

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

而且,cmd似乎无法识别中文字符。我尝试了chcp 65001,但它不工作。如何使cmd能够识别汉字?

我用谷歌搜索了很多次,但没有得到完全的答案。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-06-13 04:06:34

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

代码语言:javascript
运行
复制
cd /D D:

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

代码语言:javascript
运行
复制
pushd D:

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

请注意,我有没有特殊的CJK support set up!不幸的是,在CMD shell中仍然有用于unicode的very limited support

代码语言:javascript
运行
复制
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代码页中并在其中运行(请参见,分别为简体中文或繁体中文选择代码页,即936950 ),或者.bat文件保存在<代码>D35(没有<代码>C36)中,并在其等效的<代码>C38下运行。

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2017-06-13 01:28:11

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

代码语言:javascript
运行
复制
cd D:\

在你的图片中,你做了"D:“而没有"\";这是错误的。

我希望我能帮到你。

PS:因为cmd.exe是一个基于系统语言的Windows系统应用程序,所以没有办法将显示语言从中文更改为英文。如果您想使用英语版本的cmd,则必须更改英语版本的系统语言,或者使用英语版本重新安装Windows。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44501393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档