如何解决Windows10 cmd.exe 默认目录与 Windows7 不同
当您已经在 Win7 和 Win10 之间的 shell 中执行 cmd.exe 时,我发现默认目录的行为有所不同。
Windows 7:
C:\projects\test>ver
Microsoft Windows [Version 6.1.7601]
C:\projects\test>cmd.exe
Microsoft Windows [Version 6.1.7601]
copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\projects\test>exit
C:\projects\test>
Windows 10:
C:\projects\test>ver
Microsoft Windows [Version 10.0.18363.1316]
C:\projects\test>cmd.exe
Microsoft Windows [Version 10.0.18363.1316]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\john>exit
C:\projects\test>
我面临的问题是,这种行为差异导致某些 3rd-party 脚本失败,因为它假定执行 cmd.exe 时,它运行在任何默认目录而不是用户的家中目录或C:\Users\xxxx
例如:
-
yarn install
当目录包含依赖于 phantomjs-prebuilt 的 package.json 时。它最终会在install.js
而不是C:\Users\xxxx
目录中寻找node_modules\karma-phantomjs-launcher\node_modules\phantomjs_prebuilt
。
- Maven 的 maven-javadoc-plugin 在执行 jar 目标时动态创建一个
javadoc.bat
并且该 BAT 文件专门调用cmd.exe
来执行 javadoc。本质上,由于这种行为,从 maven 构建的 javadoc 执行在 Windows10 中失败。
解决方法
找出原因。我工作的地方有一个注册表设置,适用于公司范围内的所有 Windows10 设备。
HKEY_CURRENT_USER\Software\Microsoft\Command Processor 中的自动运行键,用于将目录更改为用户的主目录。
删除这个键,行为就会保持一致。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。