windows 系统打开.cmd 文件会自动切换到系统目录 ,而不是在当前目录,咋回事?

2022-01-12 00:19:48 +08:00
 LeeReamond

如题,我启动脚本一般都喜欢写个快捷.cmd 文件,比如下面这种

@echo off
java -jar test.jar

这样点两下鼠标就执行了,不用敲命令。

但是最近移植到朋友电脑上之后发现执行不了,他的电脑上双击这个文件后会自动以c:/windows/system32这个目录执行,而不是像我一样在当前目录下执行。

有老哥知道这是什么原因导致的吗?目前他因为这个原因每次都要手敲命令。。

869 次点击
所在节点    问与答
6 条回复
dethan
2022-01-12 00:32:46 +08:00
原因我倒是不知道,但是感觉可以绕过这个问题,把切换目录命令写进去...
dethan
2022-01-12 00:33:25 +08:00
@dethan 不过这不是很好用的处理方案,还是先排查问题吧...
lovestudykid
2022-01-12 00:33:38 +08:00
他默认以 administration 权限打开?
crab
2022-01-12 00:38:03 +08:00
加个 cd /d %~dp0
ysc3839
2022-01-12 00:56:52 +08:00
我觉得没必要纠结默认工作目录是啥的问题,因为本来工作目录就可能不是脚本所在目录,比如用户用 shell 在别的目录下使用完整路径执行这个脚本。如果你期望工作目录是脚本所在目录的话,应该加上切换过去的代码。
kokutou
2022-01-12 06:48:42 +08:00
你电脑彻底关了 UAC ,你朋友电脑没彻底关闭。
没彻底关 UAC 的,有个切换管理员的过程,默认路径会变到 system32 。。。
我不知道微软为啥这样搞。

cmd 前面加一行切换到批处理文件所在路径即可。
cd /d "%~dp0"
注意引号是必须的,防止当前文件夹路径里有空格而导致不能按预期工作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/827702

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX