2013-06-13 54 views

回答

9
@echo off 
setlocal EnableDelayedExpansion 

set "pathToInsert=%ProgramFiles%\MySQL\MySQL Server 5.5\bin" 

rem Check if pathToInsert is not already in system path 
if "!path:%pathToInsert%=!" equ "%path%" (
    setx PATH "%PATH%;%pathToInsert%" 
) 
+0

在我的觀點是不建議使用當地的**路徑值* *更新系統** PATH **。對於原因,看到我對答案[爲什麼也加入到系統路徑以SETX不僅指定的文件夾路徑其他文件夾路徑?](http://stackoverflow.com/a/25919222/3074564) – Mofi

+0

@TrevorHickey:雖然你是正確的,你必須編輯我的答案的原因,你應該認識到這個主題年超過2個半老的刪除部分是真的微不足道。我建議你把時間花在更高效的工作上。 – Aacini

+0

@Aacini我比編寫評論的時間花費的時間少。 –

-1

我認爲最簡單的方法就是檢查它是否存在,然後追加到它,如果是的話,或者只是直接寫入到它,如果它沒有。從你的標籤我假設你正在嘗試從批處理文件做到這一點。 This page似乎包含最貼合您需要的例子:

IF "%PATH%" == "" GOTO NOPATH 
:YESPATH 
@ECHO The PATH environment variable was detected. 
PATH=C:\DOS;%PATH% 
GOTO END 
:NOPATH 
@ECHO The PATH environment variable was NOT detected. 
PATH=C:\DOS; 
GOTO END 
:END 

這個批處理代碼將增加C:\ DOS到路徑,只需用你想用什麼替代它。當然,如果您不希望顯示消息,您可能需要刪除回顯行或禁用回顯。

+0

%PATH%有許多應用程序路徑。當我試圖回顯'%PATH%'時,它顯示了很多路徑。並且'C:\ Program Files \ MySQL \ MySQL Server 5.5 \ bin'位於%PATH%變量中。你的代碼只是檢查'%PATH%'是否爲空,否則追加'C:\ DOS'。我需要檢查'%PATH%'中是否存在'C:\ DOS'追加。 –

+0

@HamedKamrava對不起,我誤解了你的問題。那麼這解釋了很多,我已經不知道爲什麼有人想檢查是否%PATH%存在,彷彿它通常沒有... – Cynikal