在 win10 使用 BAT-File 來自動安裝 anaconda 環境
前言
以前常常要灌Python來建立TensorFlow環境來跑程式,有時可能自己要同時在好幾台測試,所以要灌好幾個地方。雖然每台電腦都用Anaconda來管理環境,理論上導出環境的檔案,就可以直接安裝,但是偏偏不知道為什麼常常安裝到一半就會失敗,還不如手動輸pip指令來安裝,但這樣實在太沒效率,所以才會做一個批次檔去執行安裝指令。
寫成批次檔有個好處,就是可以去追朔之前各個手動安裝的版本,尤其是電腦科學近年發展神速,TensorFlow常常更新,有時根本措手不及,安狀太新的版本反而會出現一堆Bug。
程式碼
下面這段BAT程式碼是我最近又要裝環境,因為要裝很久以前的TensorFlow,想說直接寫籌批次檔看看哪種環境可以執行原有的程式。
檔名:install.bat (儲存編碼要用ANSI碼,中文才不會變亂碼)
@echo off
echo.
echo. 一鍵安裝 Aanconda Python 環境
:choice
set /P c=是否開始安裝?[Y/N]
if /I "%c%" EQU "N" goto :somewhere
if /I "%c%" EQU "Y" goto :somewhere_else
goto :choice
:somewhere
echo 再見
pause
exit
:somewhere_else
echo Y | call conda create -n tf1 python=3.5
echo Y | call conda activate tf1
echo Y | call pip install tensorflow==0.12.0
echo Y | call pip install keras==1.2.2
call conda deactivate
pause
@echo on
解說
set指令
set [<variable>=[<string>]]
set [/p] <variable>=[<promptString>]
set /a <variable>=<expression>
參數 | 描述 |
---|---|
指定要設定或修改的環境變數。 | |
指定要與指定的環境變數相關聯的字串。 | |
/p | 將的值設定 |
指定提示使用者輸入的訊息。 此參數必須搭配 /p 參數使用。 | |
/a | 設定 |
指定數值運算式。 | |
/? | 在命令提示字元顯示說明。 |
- 不加參數直接輸入SET,可以顯示環境變數
-
/a參數:做數學運算
set /A a = 40 * (20 - 15 ) echo 40 * (20 - 15 ) = %A%
-
/p參數:把檔案內容存到環境變數
將使用者輸入的內容存到變數中
set /P c=是否開始安裝?[Y/N] echo your answer %c%
將指定檔案內容取到變數中
set /P c=
if指令
- 比較運算子 (compare-op)
比較運算子 | 說明 |
---|---|
EQU | 等於 |
NEQ | 不等於 |
LSS | 小於 |
LEQ | 小於或等於 |
GTR | 大於 |
GEQ | 大於或等於 |
- 擴充命令[/I] :比較輸入的字串是否一樣
IF [/I] string1 compare-op string2
set /P c=是否開始安裝?[Y/N]
if /I "%c%" EQU "N" echo No
if /I "%c%" EQU "Y" echo Yes
goto指令
跳至某一行
set /P c=是否開始安裝?[Y/N]
if /I "%c%" EQU "N" goto :somewhere
if /I "%c%" EQU "Y" goto :somewhere_else
:somewhere
echo statement 1
pause
:somewhere_else
echo statement 2
pause
call指令
如果要要執行非BAT指令的話,就要在前面加上call來執行,例如conda
指令、pip
指令:
call conda create -n tf1 python=3.5
call conda activate tf1
call pip install tensorflow==0.12.0
call pip install keras==1.2.2
echo Y | 指令
用來自動輸入字串
echo Y | call conda create -n tf1 python=3.5