Python

在 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

Refer

留下一個回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *