setx设置带空格的PATH

Sha*_*der 3 windows windows-shell setx

我试图在win32 shell脚本中更新系统Path变量,但仅在没有值的情况下更新.

我当前的版本看起来像这样:

for %%f in (xyz.exe) DO if [%%~$PATH:f]==[]; setx Path "%PATH%;%GRADLE_HOME%\bin" -m
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是

setx Path "%PATH%;%GRADLE_HOME%\bin"  
Run Code Online (Sandbox Code Playgroud)

这不起作用,但如果我将引号更改为单引号

setx Path '%PATH%;%GRADLE_HOME%\bin'
Run Code Online (Sandbox Code Playgroud)

它确实有效但Path在第一次出现Program Files时结束.即abc; def;程序

有没有办法克服这个问题?

小智 7

实际上有一种更简单的方法..它似乎工作但它有点丑陋和不直观:

setx/M Path"%PATH%;%GRADLE_HOME%\ bin

请注意,只有一个双引号,它在开头..如果你把一个放在最后,它最终在路径字符串中(没有一个在开头).

  • 不适用于带有不可避免空格的路径,例如 `%PROGRAMFILES%\MySQL\MySQL Server 5.7\bin\` (2认同)

Joe*_*oey 2

单引号在 Windows 中不起作用。时期。

实际上,您的代码确实适合我使用双引号。