标签: setx

如何使用setx添加到Windows PATH变量?有奇怪的问题

我想使用修改Windows PATH变量setx.以下在Windows 8上至少有50%的时间可以正常工作:

setx PATH %PATH%;C:\Python27\;C:\Python27\Scripts\
Run Code Online (Sandbox Code Playgroud)

如果它给出错误"默认参数只能使用2次",那么下面的部分时间会起作用:

setx PATH "%PATH%;C:\Python27\;C:\Python27\Scripts\"
Run Code Online (Sandbox Code Playgroud)

不同之处在于我们将第二个参数包装在引号中.我相信%PATH%扩展包含空格时引号是必要的.

但是,我在Windows 7上遇到了一些奇怪的问题.在一台特定的Windows 7机器上,我遇到了这个问题:

echo %PATH%
Run Code Online (Sandbox Code Playgroud)

它打印:

C:\Foo\;C:\Bar\;[...lots of stuff...]C:\Baz\
Run Code Online (Sandbox Code Playgroud)

然后我这样做:

setx PATH "%PATH%;C:\Quux\"
Run Code Online (Sandbox Code Playgroud)

然后它说"错误:截断1,024个字符." 现在让我们检查一下PATH包含的内容:

echo %PATH%
Run Code Online (Sandbox Code Playgroud)

它打印:

C:\Foo\;C:\Foo\;C:\Bar\;C:\Bar\;[...lots of stuff, now duplicated...]C:\B
Run Code Online (Sandbox Code Playgroud)

......它被裁减为1,024个字符.由于重复,它跑了过来.同样有趣的是:尽管setx引发了错误而没有说"成功" ,但PATH的价值也发生了变化.

我能够多次重复这种奇怪的行为(幸运的是我保存了PATH的原始内容).

目前,我知道附加到PATH的唯一可靠方法如下:

  1. echo 路径.

  2. 将PATH的内容复制到文本文件中,然后手动添加;C:\Python27\;C:\Python27\Scripts\到PATH的末尾.

  3. 将整个事物复制出文本文件.

  4. setx PATH "<paste the string here>"

该过程在Windows 7和Windows 8上每次都有效.

我应该能够在一个命令中做到这一点.我究竟做错了什么?

谢谢.

windows cmd path setx

67
推荐指数
4
解决办法
14万
查看次数

SETX不会将路径附加到系统路径变量

我试过下面的命令通过批处理文件将一些路径附加到系统路径变量:

setx PATH "%PATH%;C:\Program Files\MySQL\MySQL Server 5.5\bin"
Run Code Online (Sandbox Code Playgroud)

运行上面的批处理文件后,我检查了系统变量路径,上面的路径不在那里.

在此输入图像描述

您可以Variable value在下面看到所有窗口内容:

C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMDAPP\bin\x86;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\ATI Technologies\ATI.ACE\Core-Static;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

windows cmd batch-file system-variable setx

22
推荐指数
5
解决办法
5万
查看次数

无效的语法。默认选项不允许超过“2”次

我无法理解为什么会出现此错误:

ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.
Run Code Online (Sandbox Code Playgroud)

执行

C:\Users>setx JAVA_HOME "C:\DOC\JDK64\1.8.0.74"

SUCCESS: Specified value was saved.

C:\Users>setx PATH "%PATH%;%JAVA_HOME%\bin"
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.

C:\Users>setx PATH "%PATH%;%JAVA_HOME%bin"
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.
Run Code Online (Sandbox Code Playgroud)

cmd environment-variables setx

11
推荐指数
1
解决办法
2万
查看次数

Windows10 上无法识别 setx 命令

我正在一台装有(不幸的是)Windows 10 的新笔记本电脑上安装软件,但该setx命令无法识别:

“setx”不被识别为内部或外部命令

我用 Google 搜索过这个,但找不到任何与 setx 和 Windows-10 相关的内容。

我需要做一些特定的事情才能在 Windows-10 上启用此命令吗?

setx windows-10

9
推荐指数
1
解决办法
2万
查看次数

如何将值附加到 NodeJS 中的 PATH 环境变量?

按照问题中建议的答案 -

是否可以永久设置环境变量?

我能够使用命令永久设置新的环境变量 -

spawnSync('setx', ['-m', 'MyDownloads', 'H:\\temp\\downloads'])
Run Code Online (Sandbox Code Playgroud)

但现在我的目标是将新值附加到 PATH 环境变量中。

是否可以?

windows node.js setx electron

9
推荐指数
1
解决办法
1362
查看次数

Android setX()和setY()表现得很奇怪

我正在尝试动态创建然后在Android活动中移动图像.但是,setX()和setY()方法似乎无法正常工作.它在首次创建和放置图像时正确设置图像的位置,但任何更新图像的尝试都会导致图像放置在错误的位置.例如,图像移动到以下代码:

ImageView image;
RelativeLayout layout = (RelativeLayout)findViewById(R.id.activity_this);

if(action == MotionEvent.ACTION_DOWN){

    image = new ImageView(MyClass.this);                            
    layout.addView(image, width, height);   
    image.setX(206);
    image.setY(206);
}
else if(action == MotionEvent.ACTION_MOVE){

    if(image != null){
        image.setX(206);
        image.setY(206);
    }
}
Run Code Online (Sandbox Code Playgroud)

在ACTION_MOVE上,即使x和y位置值保持不变,也会移动图像.图像的父级保持不变.大小保持不变.如果我得到x和y值,它仍然会说206,但它不再放在(206,206)活动上.我很遗憾为什么会这样.除了物理上改变位置外,我找不到任何迹象表明图像已被改变.

android imageview setx

8
推荐指数
1
解决办法
2万
查看次数

如何在Windows批处理文件中使用setx命令

我正在尝试创建一个Windows批处理文件来自动设置环境变量以使用python 2.4或python 3.3.

python 2.4和3.3都安装在我的系统上.这是我的代码:

::To toggle between Python24 and Python 33
@echo on
if (%PYTHONHOME:~-2%) == "24" (setx PYTHONHOME "C:\Python33" && setx PATH %PATH:Python24=Python33% ) else (setx PYTHONHOME "C:\Python24" && setx PATH %PATH:Python33=Python24% )
pause
Run Code Online (Sandbox Code Playgroud)

首先,我将PYTHONHOME设置为 C:\Python24

但是上面的脚本给出了以下错误:

SUCCESS: Specified value was saved.
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.
Run Code Online (Sandbox Code Playgroud)

我的PYTHONHOME仍指向python 24,没有任何改变.setx命令不会更改环境变量.导致此错误的原因是什么?

windows batch-file environment-variables setx

7
推荐指数
1
解决办法
2万
查看次数

当只有两个参数时,具有两个以上参数的"setx"语法无效

我无法PATH永久设置全局环境变量SETX.

我读过类似的问题的答案,如与SETX无效的语法以及阅读语法SS64.

据我所知,以下行遵循的语法SETX正确,也不要有两个以上的论点是:

SETX PATH "%PATH%"
Run Code Online (Sandbox Code Playgroud)

但这并不止于SETX给我这个错误:

ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.
Run Code Online (Sandbox Code Playgroud)

上面的命令是在管理员实例上运行的cmd.exe.使问题更加陌生的原因是,cmd.exe同一命令的用户实例上工作完美.

我简化了上面的命令以强调问题,但我真正想要运行的是:

SETX PATH "%PATH%;D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin" /M
Run Code Online (Sandbox Code Playgroud)

当然,这给出了相同的确切错误,我不能在用户实例上运行它,cmd.exe因为我试图PATH永久地设置全局环境变量.(需要管理员访问权限)

cmd environment-variables setx windows-8.1

6
推荐指数
1
解决办法
1万
查看次数

如果尚未存在,则如何将新路径插入到系统路径变量中

我正在使用以下命令追加到Windows系统PATH变量的路径:

setx PATH "%PATH%;%ProgramFiles%\MySQL\MySQL Server 5.5\bin"
Run Code Online (Sandbox Code Playgroud)

它工作正常.

我的问题是:

如何将路径(在这种情况下为%ProgramFiles%\ MySQL\MySQL Server 5.5\bin)附加到系统PATH变量中,同时还检查它是否已经存在,如果没有,则不添加两次?

windows batch-file setx

4
推荐指数
1
解决办法
9955
查看次数

setx设置带空格的PATH

我试图在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;程序

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

windows windows-shell setx

3
推荐指数
2
解决办法
5930
查看次数