快速添加当前目录到环境变量

@ECHO OFF 
IF EXIST %CD%\bin\java.exe ( 
    IF EXIST %systemroot%\system32\setx.exe ( 
        @ECHO "设置JAVA_HOME:%CD%" 
        @SETX JAVA_HOME %CD% 
        @ECHO "设置CLASSPATH:.;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar" 
        @SETX CLASSPATH ".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\jre\lib\rt.jar" 
        @ECHO "设置PATH:%%JAVA_HOME%%\bin" 
        @SETX PATH "%%JAVA_HOME%%\bin" 
        @ECHO JDK环境变量设置成功 
    ) ELSE ( 
        @ECHO ON 
        @ECHO 未能找到%systemroot%\system32\setx.exe,请下载setx.exe程序 
    ) 
) ELSE ( 
    @ECHO ON 
    @ECHO JDK安装目录不正确,未能按照预期计划执行 
) 
@PAUSE

如何修复 setx.exe 缺失(找不到)的问题

 

setx.exe 文件信息

文件名:
setx.exe
文件描述:
Setx – 设置环境变量
操作系统:
Microsoft® Windows® Operating System
系统版本:
6.0.6000.16386
开发公司:
文件摘要:
1666d13e290172b4c8697380e52e28c0
文件类型:
exe file 可执行程序
安全等级(0-5):
5
适用系统:
Windows NT/2000/2003/XP/Vista/2008/7/8

可能出现的错误提示信息

  • “setx.exe cannot be found.”
  • “This program can’t start because setx.exe is missing from your computer.”
  • “setx.exe is missing.”
  • “There was a problem starting [path]\setx.exe. The specified module could not be found.”
  • “Runtime Error. setx.exe pure virtual function call.”
  • “Access Violation File [path]\setx.exe”
  • “Unable to launch the software located at path: [path]\setx.exe”
  • “This application requires the file setx.exe, which was not found on this system.”

出现错误的原因

这些错误可能出现在你安装或者运行一些应用程序/软件的时候。一般在Windows 操作系统或者软件启动或者关闭,以及正在使用的时候。

想解决错误需要先理清楚导致这些错误的原因,一般如下:

  • setx.exe 文件可能被人为,系统防病毒软件或者系统清理工具等误删.
  • setx.exe 文件可能因为病毒感染导致损坏.
  • 一些应用程序或者软件的错误安装导致.
  • 这个文件的某些配置项在系统注册表正在使用.
  • 你的电脑有硬件故障.

温馨提示

不建议去各种所谓的dll下载站点去下载,因为这些站点提供的dll或者exe可能存在很多问题,比如 过期了,不适配你当前的操作系统和软件,甚至被注入病毒等。所以如果需要还原一个setx.exe文件,最好从官方或者稳定的渠道下载。

修复办法:

  1. 使用注册表清理工具去修复
  2. 重启电脑
  3. 从回收站回复文件,如果是手动误删,可以直接恢复该文件
  4. 执行 sfc /scannow 命令,参见windows 官方 sfc命令
  5. 更新驱动程序
  6. 安装或者恢复此前备份的正确的硬件驱动程序
  7. 重新安装可能用到该文件的软件
  8. 重装系统!
  9. 测试硬件

使用SFC /scannow 时win8以上系统注意事项

  1. 需要使用“管理员身份”打开 命令提示
  2. 允许通过“用户账户控制“,点击 “是”
  3. 输入 sfc /scannow (在sfc 和 /scannow 之间有空格),并回车

引文参考:修复错误工具

setx

setx是一个微软Window操作系统的一个管理工具/命令。setx是英文Set X,即用于设置环境变量,是Windows系统中运维需要的命令

历史

适用于:Windows Vista, Windows Server 2008, Windows Server 2012, Windows 8,Windows 10

setx首次出现于Windows Vista.

使用方法

在操作系统中都有环境变量的概念,表示操作系统中用来指定操作系统运行环境的一些参数。

该命令 setx 用于 不依赖脚本和编程,直接创建或者修改 用户或者系统的环境变量。并可用于检索注册表项的值并将它们写进文本文件。

语法

#语法 1:
SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]
#语法 2:
SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]
#语法 3:
SETX [/S system [/U [domain\]user [/P [password]]]]
        /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]

参数列表

/S     system          指定要连接到的远程系统。
/U     [domain\]user   指定应该在哪个用户上下文执行命令。
 
/P     [password]      指定给定用户上下文的密码。如果省略则
                       提示输入。
 
var                    指定要设置的环境变量。
 
value                  指定分配给环境变量的值。
 
/K     regpath         指定变量是基于注册表项的信息而设置的。
                       路径的格式应该是 hive\key\...\value。例如
                       HKEY_LOCAL_MACHINE\System\CurrentControlSet
                       \Control\TimeZoneInformation\StandardName。
 
/F     file            指定要使用的文本文件的文件名。
 
/A     x,y             指定绝对文件坐标(线 X,项目 Y)作为在此文件
                       里搜索的参数。
 
/R     x,y string      指定有关“字符串”作为搜索参数的相对文件坐标。
 
/M                     指定应该在系统 (HKEY_LOCAL_MACHINE) 环境中设置此变量。
                       在 HKEY_CURRENT_USER 环境下,默认将设置此变量。
 
/X                     用 x,y 坐标显示文件内容。
 
/D     delimiters      指定其他限定符,如 "," 或 "\"。
                       内置分隔符是空格、制表符、回车和换行符。所有ASCII 字符都可作为限定符。限定符的最大数量,
                       包括内置分隔符,是 15。
 
/?                     显示此帮助消息。

注意

     
     1) SETX 在注册表中将变量写入主机环境。
     2) 在本地系统,用此工具创建或修改的变量将在以后的命令窗口可用,但
        在当前的 CMD.exe 命令窗口。
     3) 在远程系统,用此工具创建或修改的变量在下次登录会话可用。
     4) 有效的注册表项数据类型是 REG_DWORD,REG_EXPAND_SZ,REG_SZ
        和 REG_MULTI_SZ。
     5) 受支持的配置单元:  HKEY_LOCAL_MACHINE (HKLM),
        HKEY_CURRENT_USER (HKCU)。
     6) 限定符区分大小写。
     7) REG_DWORD 的值是从注册表里以十进制格式提取出来的。

示例

SETX MACHINE COMPAQ
SETX MACHINE "COMPAQ COMPUTER" /M
SETX MYPATH "%PATH%"
SETX MYPATH ~PATH~
SETX /S system /U user /P password  MACHINE COMPAQ
SETX /S system /U user /P password MYPATH ^%PATH^%
SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet
              \Control\TimeZoneInformation\StandardName
SETX BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT
              \CurrentVersion\CurrentBuildNumber" /M
SETX /S system /U user /P password TZONE 
           /K HKEY_LOCAL_MACHINE\System\CurrentControlSet
              \Control\TimeZoneInformation\StandardName
SETX /S system /U user /P password  BUILD 
           /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT
              \CurrentVersion\CurrentBuildNumber" /M
SETX /F ipconfig.out /X
SETX IPADDR /F ipconfig.out /A 5,11
SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*."
SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway
SETX /S system /U user /P password  /F c:\ipconfig.out /X