【问题标题】:Remove extra character from System Path variable using a batch file使用批处理文件从系统路径变量中删除多余的字符
【发布时间】:2015-04-24 19:45:41
【问题描述】:

我们之前使用的一个批处理文件在其中一个脚本中意外额外添加了 ",因此现在看不到添加的任何内容。

关于如何从 Path 变量中删除多余的 ",我找不到一个好的答案。有什么建议吗?

当前路径:

%M2_HOME%\bin;%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0";C:\Program Files\Puppet Labs\Puppet\bin

如您所见,在 Powershell\v1.0 之后,多了一个 "

任何建议都将不胜感激。很长一段时间以来,我一直在努力解决这个问题。

【问题讨论】:

  • 尝试创建一个新的批处理文件,该文件可以运行以处理此问题,而无需任何人进入其系统变量。

标签: batch-file


【解决方案1】:

控制面板中的系统 - 高级系统设置 - 高级选项卡 - 环境变量。

【讨论】:

    【解决方案2】:

    假设我创建了一个变量 PATH 来保存名为 %PATH% 的环境变量,这就是我要编写的内容。

    设置路径=%PATH:"=%

    DOS 字符串替换语法是冒号后跟要替换的子字符串,然后是等号,后跟要替换子字符串的文本。所以 :"= 所做的就是将 %PATH% 变量中的所有 " 替换为空。

    SET MYPATH=F:\cyntrx\deploy\scripts\automated_tasks\ReportIftaVehicleCode\
    ECHO MYPATH
    SET PATH=%MYPATH:\=%
    ECHO PATH
    

    为了实际更改 Windows %PATH% 环境变量,而不仅仅是“修复”环境变量以供批处理文件本身使用,请在批处理文件中使用 setx /m 命令。 重要提示:在命令提示符关闭并重新启动之前,ECHO 命令不会显示更改。

    系统变量:

    setx path "%PATH:"=%" /m
    

    用户变量:

    setx path "%PATH:"=%"
    

    【讨论】:

    • 这和我原来的位置很接近: Set PATH=%PATH:"=% 但是,如果你打开一个新的 CMD 窗口并再次运行 Echo %PATH% ,它又回来了。似乎那个方法不保存编辑?这有意义吗?
    • 对,回显 PATH,而不是 %PATH%。 PATH 是您修改后的字符串。 (更新了我的答案以显示)
    • 啊,我想我现在明白了。您的批处理文件实际上是在尝试更新环境变量,而不是“修复”环境变量以供自己使用。在这种情况下,它是 setx /m 命令。
    • 是的 :) 很抱歉我的困惑。环境变量是所有出现此问题的服务器上需要更改的内容。
    • 你会怎么写?我收到无效的语法,说它不允许超过 '2' 次?
    猜你喜欢
    • 2014-02-03
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    相关资源
    最近更新 更多