首先,讓我開始通知您,以這種方式添加到PATH變量僅適用於正在運行的會話。一旦cmd會話關閉,該變量返回到其先前的值。
這裏有一個建議,一個追加每次添加一個:
SET "ToAdd=\\somewhere\Tools\strawberryperl\perl\site\bin;"
SET "ToAdd=%ToAdd%;\\somewhere\Tools\strawberryperl\perl\bin;"
SET "ToAdd=%ToAdd%;\\somewhere\Tools\strawberryperl\c\bin;"
SET "ToAdd=%ToAdd%;\\somewhere\Tools\KDiff3"
SET "PATH=%PATH%;%ToAdd%"
順便說一句,如果你希望添加到超越正在運行的會話環境變量那麼你忽略的人建議你用的是很重要SETX而不是SET。 (該變量將被截斷爲1024字節,因此會對其進行破壞)。您的最佳解決方案將涉及編輯註冊表,並可能使用內置工具(如PowerShell)。
編輯
這顯示在我的評論中提到的方法,並使用相同的結構,脫線的回答是:
C:\ MYDIR \ Paths.txt
\\somewhere\Tools\strawberryperl\perl\site\bin
\\somewhere\Tools\strawberryperl\perl\bin
\\somewhere\Tools\strawberryperl\c\bin
\\somewhere\Tools\KDiff3
批處理文件
@Echo Off
SetLocal EnableDelayedExpansion
For /F "UseBackQDelims=" %%A In ("C:\MyDir\paths.txt") Do Set "Path=!Path!;%%~A"
Echo(%Path%
EndLocal
Timeout -1
這意味着你只需要每次都包含for循環而不是添加每個路徑。
我認爲你必須把領先';'那裏Path變量通常對於沒有一個結束。你有沒有試過用'echo%PATH%'檢查變量的值? – geisterfurz007
刪除縮進空格,它將工作... – aschipfl