【问题标题】:How do i apply changes made to path variable after changing it?更改路径变量后如何应用对路径变量所做的更改?
【发布时间】:2015-12-30 04:19:22
【问题描述】:

在我的 .bat 文件中,我使用了代码:

setx /m path "%PATH%;%~dp0" %~dp0

将 .bat 文件的当前目录添加到系统路径。

但是在我进入系统设置并编辑路径变量之前,我无法使用 cmd 运行 phantomjs.exe(在同一目录中)。我实际上并没有进行任何更改,只需单击编辑然后确定以应用更改。

我需要在脚本中添加什么以允许我在无需进入系统设置的情况下运行 phantomjs.exe?

编辑:我使用的笔记本电脑是 32 位操作系统,未应用更改。我使用代码setx /m path %PATH%%~dp0 在 64 位操作系统上对其进行了测试,并且无需打开路径变量即可立即应用更改。

我怎样才能使它适用于 32 位操作系统?

【问题讨论】:

  • 所以当您希望使用 phantomjs.exe 时,您必须手动运行一次脚本来更新 PATH?这与手动更新 PATH 有什么不同? (这只是一个有用的问题,除非脚本在系统启动时自动被踢出) ....谈到您的实际问题,当您运行脚本时,您的 CMD 是否打开?您是否以管理员身份运行脚本?
  • 如前所述,您需要以管理员身份运行setx /m 才能工作。无论如何,环境更改不会在同一个cmd 会话中生效。如果你想从同一个批处理文件中运行phantomjs.exe (in the same directory),那么只需写%~dp0phantomjs.exe
  • @Mofi 对于我的测试,我从批处理中删除了除了那行代码之外的所有内容,并且它有效。 phantomjs.exe 与批处理文件位于同一目录中。如果您阅读我的编辑,它会解释它适用于 64 位。
  • 如果没有更多有问题的详细信息,例如所有目录路径和批处理文件的实际代码,我将无能为力。 setx /m path "%PATH%;%~dp0" %~dp0 是错误的,因为第四个参数,如果 PATH 的字符串还没有以分号结尾,setx /m path %PATH%%~dp0 也是错误的。并且用于更新系统 PATH 的方法根本不好,因为参考答案详细解释并提供了更好的批处理代码。

标签: shell batch-file phantomjs environment-variables


【解决方案1】:

使用setsetxSetx 用于未来窗口,set 用于当前窗口。随意搭配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-04
    • 2011-08-11
    • 1970-01-01
    • 2022-08-18
    • 2014-06-07
    • 1970-01-01
    • 2013-03-30
    • 2016-12-07
    相关资源
    最近更新 更多