我使用下面的命令來追加到Windows系統PATH變量的路徑:如何,如果它不是插入一個新的路徑到系統路徑變量已經有
setx PATH "%PATH%;%ProgramFiles%\MySQL\MySQL Server 5.5\bin"
它工作正常。
我的問題是:
如何追加的路徑(的%ProgramFiles%\ MySQL的\ MySQL服務器在這種情況下,5.5 \ BIN)爲系統PATH變量,同時檢查它已不存在,並且不添加它會兩次嗎?
我使用下面的命令來追加到Windows系統PATH變量的路徑:如何,如果它不是插入一個新的路徑到系統路徑變量已經有
setx PATH "%PATH%;%ProgramFiles%\MySQL\MySQL Server 5.5\bin"
它工作正常。
我的問題是:
如何追加的路徑(的%ProgramFiles%\ MySQL的\ MySQL服務器在這種情況下,5.5 \ BIN)爲系統PATH變量,同時檢查它已不存在,並且不添加它會兩次嗎?
@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%"
)
我認爲最簡單的方法就是檢查它是否存在,然後追加到它,如果是的話,或者只是直接寫入到它,如果它沒有。從你的標籤我假設你正在嘗試從批處理文件做到這一點。 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到路徑,只需用你想用什麼替代它。當然,如果您不希望顯示消息,您可能需要刪除回顯行或禁用回顯。
%PATH%有許多應用程序路徑。當我試圖回顯'%PATH%'時,它顯示了很多路徑。並且'C:\ Program Files \ MySQL \ MySQL Server 5.5 \ bin'位於%PATH%變量中。你的代碼只是檢查'%PATH%'是否爲空,否則追加'C:\ DOS'。我需要檢查'%PATH%'中是否存在'C:\ DOS'追加。 –
@HamedKamrava對不起,我誤解了你的問題。那麼這解釋了很多,我已經不知道爲什麼有人想檢查是否%PATH%存在,彷彿它通常沒有... – Cynikal
在我的觀點是不建議使用當地的**路徑值* *更新系統** PATH **。對於原因,看到我對答案[爲什麼也加入到系統路徑以SETX不僅指定的文件夾路徑其他文件夾路徑?](http://stackoverflow.com/a/25919222/3074564) – Mofi
@TrevorHickey:雖然你是正確的,你必須編輯我的答案的原因,你應該認識到這個主題年超過2個半老的刪除部分是真的微不足道。我建議你把時間花在更高效的工作上。 – Aacini
@Aacini我比編寫評論的時間花費的時間少。 –