我想使用修改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的唯一可靠方法如下:
echo 路径.
将PATH的内容复制到文本文件中,然后手动添加;C:\Python27\;C:\Python27\Scripts\到PATH的末尾.
将整个事物复制出文本文件.
setx PATH "<paste the string here>"
该过程在Windows 7和Windows 8上每次都有效.
我应该能够在一个命令中做到这一点.我究竟做错了什么?
谢谢.
我试过下面的命令通过批处理文件将一些路径附加到系统路径变量:
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)
我究竟做错了什么?
我无法理解为什么会出现此错误:
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) 我正在一台装有(不幸的是)Windows 10 的新笔记本电脑上安装软件,但该setx命令无法识别:
“setx”不被识别为内部或外部命令
我用 Google 搜索过这个,但找不到任何与 setx 和 Windows-10 相关的内容。
我需要做一些特定的事情才能在 Windows-10 上启用此命令吗?
按照问题中建议的答案 -
我能够使用命令永久设置新的环境变量 -
spawnSync('setx', ['-m', 'MyDownloads', 'H:\\temp\\downloads'])
Run Code Online (Sandbox Code Playgroud)
但现在我的目标是将新值附加到 PATH 环境变量中。
是否可以?
我正在尝试动态创建然后在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)活动上.我很遗憾为什么会这样.除了物理上改变位置外,我找不到任何迹象表明图像已被改变.
我正在尝试创建一个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命令不会更改环境变量.导致此错误的原因是什么?
我无法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永久地设置全局环境变量.(需要管理员访问权限)
我正在使用以下命令追加到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变量中,同时还检查它是否已经存在,如果没有,则不添加两次?
我试图在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;程序
有没有办法克服这个问题?
setx ×10
windows ×6
cmd ×4
batch-file ×3
android ×1
electron ×1
imageview ×1
node.js ×1
path ×1
windows-10 ×1
windows-8.1 ×1