zoukankan      html  css  js  c++  java
  • 使用WMIC增加永久的环境变量

    关于wmic,引用一下这位哥们儿的话http://technet.microsoft.com/en-us/library/bb742610.aspx

    WMIC扩展WMI(Windows Management Instrumentation,Windows管理规范),提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编程语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。WMIC改变了这种情况,为WMI名称空间提供了一个强大的、友好的命令行接口。WMIC比WMI简单、直观得多,这主要是由于使用了别名(Alias)。别名机制获取用户在命令行上输入的一些简单命令,按照预定义的方式操作WMI名称空间,例如根据一个简单的WMIC别名Get命令构造出一个复杂的WMI查询语言(WQL)命令。从这个意义上看,别名是用户和名称空间之间一个简化操作的中间层。

    说一下wmic的命令格式:wmic+全局开关+别名+wql语句+动词+副词(或者说是动词的参数)+动词开关

    详细情况请参考微软官方网站:http://technet.microsoft.com/zh-cn/library/cc779482(WS.10).aspx

    理解多少,看你的悟性咯。理解了,这是个超强大的命令……

    1:在系统变量的某个环境变量中增加一个新的路径:

    先查看环境变量中的Path的值:

    在命令提示符中输入命令:wmic environment where "name='Path'" get UserName,VariableValue

    如下:

    D:PowerCmdPowerCmd(绿色版)>wmic environment where "name='Path'" get UserName,VariableValue

    查询结果如下:

    UserName VariableValue

    <SYSTEM> C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;d:Program Files (x86)Windows7Master;C:sc

    在Path中新增加环境变量C:Program Files (x86)TencentQQBinQQ.exe

    输入如下命令:

    wmic environment where "name='Path' and UserName='<system>'" set VariableValue="%path%;C:Program Files (x86)TencentQQBinQQ.exe"

    然后输出:

    Updating property(s) of '\S69JQRRPHB8FBP1ROOTCIMV2:Win32_Environment.Name="Path",UserName="<SYSTEM>"'

    Property(s) update successful.

    表明修改正确!

    然后再查询:

    wmic environment where "name='Path'" get UserName,VariableValue

    结果为:

    UserName VariableValue

    <SYSTEM> C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;d:Program Files (x86)Windows7Master;C:sc;C:Program Files (x86)TencentQQBinQQ.exe

    2:在系统变量中创建一个环境变量:

    设置:

    D:PowerCmdPowerCmd(绿色版)>set home=C:Program Files (x86)PPLivePPTV

    wmic ENVIRONMENT create name="PPTV_HOME",username="<system>",VariableValue="%home%"

    D:PowerCmdPowerCmd(绿色版)>Instance creation successful.

    查询:

    D:PowerCmdPowerCmd(绿色版)>wmic environment where "name='PPTV_HOME'" get UserName,VariableValue

    UserName VariableValue

    <SYSTEM> C:Program Files (x86)PPLivePPTV

    删除:

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT where "name='PPTV_HOME'" delete

    Deleting instance \S69JQRRPHB8FBP1ROOTCIMV2:Win32_Environment.Name="PPTV_HOME",UserName="<SYSTEM>"

    Instance deletion successful.

    再次查询:

    D:PowerCmdPowerCmd(绿色版)>wmic environment where "name='PPTV_HOME'" get UserName,VariableValue

    No Instance(s) Available.

    注:上面创建的环境变量时也可以分为两步:

    (1)D:PowerCmdPowerCmd(绿色版)>set home=C:Program Files (x86)PPLivePPTV

    (2)D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT create name="PPTV_HOME",username="<system>",VariableValue="%home%"

    Instance creation successful.

    3:好的,现在我们通过命令行来创建JAVA环境变量

    set p home="C:javajdk"

    wmic ENVIRONMENT where "name='JAVA_HOME'" delete

    wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%home%"

    wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%%JAVA_HOME%%in;%%JAVA_HOME%%jrein;%Path%"

    wmic ENVIRONMENT where "name='CLASSPATH'" delete

    wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%lib ools.jar;%%JAVA_HOME%%libdt.jar;%%JAVA_HOME%%jrelib t.jar"

    具体执行如下:

    (1)先创建JAVA_HOME,我们不管原来电脑中有没有,先删除JAVA_HOME(考虑到假如有的话),然后再重新建立:

    D:PowerCmdPowerCmd(绿色版)>set home="C:javajdk"

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT where "name='JAVA_HOME'" delete

    No Instance(s) Available.

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%home%"

    Instance creation successful.

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT where "name='JAVA_HOME'"

    Caption Description InstallDate Name Status SystemVariable UserName VariableValue

    <SYSTEM>JAVA_HOME <SYSTEM>JAVA_HOME JAVA_HOME OK TRUE <SYSTEM> C:javajdk

    格式见下图:

    clip_image001

    (2)然后设置Path中的对应变量值,先解释一下,在set命令中的%%JAVA_HOME%%的双百分号,前一个和高级语言中的转义字符作用类似,也就是说

    两个%%号表示路径中的一个%,而%JAVA_HOME%表示变量JAVA_HOME变量值,也就是我们已经设置的路径,还有一点需要注意的是最后的%Path%千万不可以

    省略,否则将会删去原Path的所有值!%Path%不用多说了吧,表示原来的Path值,具体命令执行如下:

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%%JAVA_HOME%%in;%%JAVA_HOME%%jrein;%Path%"

    Updating property(s) of '\S69JQRRPHB8FBP1ROOTCIMV2:Win32_Environment.Name="Path",UserName="<SYSTEM>"'

    Property(s) update successful.

    格式见下图:

    clip_image002

    (3)然后设置CLASSPATH变量对应的值,具体命令执行如下:

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT where "name='CLASSPATH'" delete

    No Instance(s) Available.

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%lib ools.jar;%%JAVA_HOME%%libdt.jar;%%JAVA_HOME%%jrelib t.jar"

    Instance creation successful.

    D:PowerCmdPowerCmd(绿色版)>wmic ENVIRONMENT where "name='CLASSPATH'"

    Caption Description InstallDate Name Status SystemVariable UserName VariableValue

    <SYSTEM>CLASSPATH <SYSTEM>CLASSPATH CLASSPATH OK TRUE <SYSTEM> .;%%JAVA_HOME%%lib ools.jar;%%JAVA_HOME%%libdt.jar;%%JAVA_HOME%%jrelib t.jar

    格式见下图:

    clip_image003

    好的,我们用命令行解决了设置问题。

    额……或许你该骂我了,什么玩意儿,这么麻烦,我还不如打开可视化界面一个个设置呢?别急,别急……

    用批处理可以帮我们一次性完成这些繁琐的工作,你只需要写一次,然后无论是你重新装了系统,亦或是换了JDK的位置,你都不必再去麻烦,只需要

    将制作成的批处理放在对应的JDK目录下,然后双击既可以了,是不是很帅气,嗯,我觉得还是蛮好玩儿的,那么看看怎么写吧:

    首先最起码你得知道一点批处理的基本知识吧,如果不知道……自己就去网上查查吧……我在这儿说个主要的:

    %~dp0

    其中%~0代表批处理本身所在的绝对路径路径,中间的d代表扩展到驱动器(driver),p代表扩展到批处理的目录(path)不包括驱动器,均是就批处理本身所在位置而言的。

    演示如下图(set.bat的文件在桌面,在我的电脑里其绝对路径为:C:UsersAdministratorDesktopset.bat):

    在桌面上建立一个set.bat文件,内容可以用记事本编辑,看图(代码不多,自己敲一下吧)

    clip_image004

    输入后,双击运行,结果如下:

    clip_image005

    我就不在分析了,很明显的。

    所以我们用%~0dp来代表批处理的所在的目录,因此你制作成的批处理务必要放在你的JDK目录下,比如你的jdk目录是c:javajdk,那么你就把这个批处理文件放到jdk文件夹下即可,那么这里的%~0dp便代表c:javajdk

    因此我们得到了所谓的home值,也就是JAVA_HOME的值。因此批处理文件书写如下:

    代码如下(自带的代码配色太难看了,所以发张好看的截图……):

    clip_image006

    @echo off

    echo Begin to set Java environment variable:

    echo Please wait a moment......

    echo %~dp0

    wmic ENVIRONMENT where "name='JAVA_HOME'" delete

    wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%~dp0"

    wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%%JAVA_HOME%%in;%%JAVA_HOME%%jrein;%Path%"

    wmic ENVIRONMENT where "name='CLASSPATH'" delete

    wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=".;%%JAVA_HOME%%lib ools.jar;%%JAVA_HOME%%libdt.jar;%%JAVA_HOME%%jrelib t.jar"

    echo ---------------------------------------------------------------------

    echo Done successfully!

    echo You can get what done in your the dirctory of the [set.bat] !

    echo ---------------------------------------------------------------------

    wmic ENVIRONMENT where "name='JAVA_HOME'">%~dp0text.txt

    wmic ENVIRONMENT where "name='Path'" >> %~dp0text.txt

    wmic ENVIRONMENT where "name='CLASSPATH'">>%~dp0text.txt

    pause

  • 相关阅读:
    Spring Cloud 入门教程6、Hystrix Dashboard监控数据聚合(Turbine)
    Spring Cloud 入门教程5、服务容错监控:Hystrix Dashboard
    Spring Cloud 入门教程4、服务容错保护:断路器(Hystrix)
    Spring Cloud 入门教程3、服务消费者(Feign)
    JS==和===总结
    怀疑与批判
    Java多线程速记手册
    编译原理
    C系、Java、JavaScript、C#、PHP、Swift基本语法对比
    单例模式番外篇
  • 原文地址:https://www.cnblogs.com/fyly/p/11154890.html
Copyright © 2011-2022 走看看