mrhuiyu
V2EX  ›  问与答

请问,如何让自解压程序内的文件放到启动目录?

  •  
  •   mrhuiyu · Sep 15, 2016 · 2072 views
    This topic created in 3554 days ago, the information mentioned may be changed or developed.
    写了一个 vsb 和 cmd 的脚本,打包成了自解压程序可以运行后自动运行脚本,现在想让脚本移动到开机启动,但是公司的电脑用户名不一样,没法绝对路径复制,请问有什么办法可以用命令自动放到当前用户启动目录?
    Supplement 1  ·  Sep 15, 2016
    已经写好了。谢谢大家~
    15 replies    2016-09-16 08:56:40 +08:00
    xenme
        1
    xenme  
       Sep 15, 2016 via iPhone   ❤️ 1
    解压完记得可以自动执行一个脚本或者批处理,然后自动移动就好了
    mrhuiyu
        2
    mrhuiyu  
    OP
       Sep 15, 2016
    @xenme 我设置了,自动解压到指定( C 盘根目录)目录后运行我要的脚本。但是移动的话不知道怎么获取到当前用户的开机目录。
    xenme
        3
    xenme  
       Sep 15, 2016 via iPhone   ❤️ 1
    环境变量。
    C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
    如果还有可能不同系统等批处理检查下就可以了。
    mrhuiyu
        4
    mrhuiyu  
    OP
       Sep 15, 2016
    @xenme 谢谢。
    skydiver
        5
    skydiver  
       Sep 15, 2016 via Android   ❤️ 1
    @xenme
    @mrhuiyu 应该用%APPDATA% 这个变量,因为你没法确定用户目录没改过
    skydiver
        6
    skydiver  
       Sep 15, 2016 via Android   ❤️ 1
    @skydiver %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
    mrhuiyu
        7
    mrhuiyu  
    OP
       Sep 15, 2016
    @skydiver 完整的是 C:\Users\%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup ?这样?
    skydiver
        8
    skydiver  
       Sep 15, 2016 via iPad   ❤️ 1
    @mrhuiyu 我发的就是完整的。不要自己拼盘符和路径,%APPDATA%就是指向 roaming 文件夹
    exch4nge
        9
    exch4nge  
       Sep 15, 2016   ❤️ 1
    windows 键 + R 在运行里写 "shell:startup" (不包括引号)就能打开个人用户的 startup 目录,如果是所有用户的 startup 目录的话写 "shell:common startup" 就可。
    Arnie97
        10
    Arnie97  
       Sep 15, 2016 via Android   ❤️ 1
    @exch4nge 这个才是正解。 Startup 目录的位置是可以在注册表中单独修改的,不一定会在 6 楼所述的位置
    skydiver
        11
    skydiver  
       Sep 15, 2016
    @exch4nge
    @Arnie97 但是这是 shell 命令,并不能放在脚本里用
    skydiver
        12
    skydiver  
       Sep 15, 2016
    看了下这个页面 https://technet.microsoft.com/en-us/library/cc749104(v=ws.10).aspx
    里面提到了 startup 目录的环境变量是 CSIDL_STARTUP

    所以还是直接写 %CSIDL_STARTUP% 比较靠谱
    skydiver
        13
    skydiver  
       Sep 15, 2016
    @skydiver 啊 看错了,这个并不是环境变量……这种变量应该需要通过一些方法才能取到……不懂 windows 编程,只能帮 lz 到这了
    exch4nge
        14
    exch4nge  
       Sep 15, 2016
    @skydiver
    @mrhuiyu

    不好意思,没有细看题目。我搜到了 VBS 脚本,看下面链接中的答案。

    http://stackoverflow.com/questions/3525462/how-to-retrieve-startup-folder-location-in-64-bit-windows
    mrhuiyu
        15
    mrhuiyu  
    OP
       Sep 16, 2016
    @exch4nge 额。。。但是我用%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup 这个来释放程序到开启文件夹的。。。。似乎可以使用= =
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1694 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 16:30 · PVG 00:30 · LAX 09:30 · JFK 12:30
    ♥ Do have faith in what you're doing.