V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

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

  •  
  •   LeeReamond · 2022-01-12 00:19:48 +08:00 · 861 次点击
    这是一个创建于 828 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    @echo off
    java -jar test.jar
    

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

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

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

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

    cmd 前面加一行切换到批处理文件所在路径即可。
    cd /d "%~dp0"
    注意引号是必须的,防止当前文件夹路径里有空格而导致不能按预期工作。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5228 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:07 · PVG 15:07 · LAX 00:07 · JFK 03:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.