Day5 跟一般的指令可不一樣啊!跟我所認識的指令不同啊!


大家好,今天過得還好嗎?
相信看完Day4的你已經學會了敲指令所需要的基本概念
但...你可能會想問"有沒有更快的方式可以一次執行一堆指令呢?"
所以今天的主題就是"刻出一個簡單的腳本"
在Windows裡給CMD的腳本稱為批次檔,而Linux裡給終端機執行的腳本叫做shell script
(以下因為作者本人有點懶所以linux的shell script也可能會用批次檔來稱呼)

好的,那什麼是所謂的批次檔(batch file)呢?
簡單地來說,批次檔就是幫你批批次次完成所需要的工作的檔案啦 (((廢話
有點像是一堆指令的集合的概念(但我們不會叫它指令集,因為那會和CPU的指令集搞混)
(資訊安全觀念補充:執行前要先瞭解批次檔的內容才不會發生可怕的事情)

好,首先我們得知道,怎樣的人會想去寫所謂的批次檔?
1.有大量重複工作的人
2.可能定期或是定量要處理事情的人(可以抓date在特定日期執行)
3.像我一樣的懶人
4.只是想寫寫看批次檔的人

好,知道這些後我們就要開始寫真正的腳本了
那麼,一個腳本裡面應該要有什麼呢?
其實...你只需要打要執行指令就可以了
Windows批次檔的副檔名會叫做".bat"和".cmd"
Linux腳本的副檔名則是通常會叫".sh"
(以下內容會先以Windows優先)
好...那我們開始寫第一個最簡單批次檔的話吧!
(這裡假設你是直接點擊批次檔執行)
批次檔的內容如下

echo 我看到了
pause

執行的結果如下

在這個例子裡的指令解釋
echo → 用來顯示訊息
pause → 讓批次檔執行完後不會自動退出(如果想讓使用者看執行結果或是用於除錯都很好用)
但...這時候你可能會想問...可是我看別人執行的時候不會顯示出它在執行的指令呀
這時候就會用到這個指令

@echo off

加上這個指令後執行會長這樣

而這個指令的用法解釋
@ → 表示從這行開始 echo off→ 不顯示批次檔內執行的指令(反之,on則是顯示)
所以一般批次檔第一行很常放這個

好...你已經會寫第一個最簡單的批次檔了
你還可以做一些更進階的應用,是時候來看第二個批次檔了
(以下拿我高中捏的成績計算批次檔為例)

@echo off
set /p CH=國文:
CLS
set /p EN=英文:
CLS
set /p MT=數學:
CLS
set /p IB=商概:
CLS
set /p CC=計概:
CLS
set /p KRG=會計:
CLS
set /p KZG=經濟:
CLS
set /a SUM=CH+EN+MT+IB+CC+KRG+KZG
echo 成績發表 __│ ̄│○
echo 國文 %CH%
echo 英文 %EN%
echo 數學 %MT%
echo 商概 %IB%
echo 計概 %CC%
echo 會計 %KRG%
echo 商概 %KZG%
echo 總分 %SUM%
pause

指令解釋
set這個指令可以用來設定變數
假如你需要問使用者問題並把你可以這樣用set

set /p xxx=要顯示的字串

而"/a"參數則是把後面設定成數學運算式(不然它會把後面的東西當作一串字來處理)
而在cmd裡關於變數的簡單用法解釋如下

rem (這是註解,是"remark"的簡稱)
rem 設定變數
set 變數名稱=想要的數值或是字串
rem 取用(這裡是印出)變數
echo %變數名稱%

一個簡單的記法就是"要設定時候直接放變數名稱"然後要取它的內容時要在變數前後加上"%"

好的,相信經過了Day5的洗禮後坐在電腦前的你已經能捏出一個簡單的批次檔了
那麼我們Day6見








你可能感興趣的文章

【PHP】畫面一片空白、直接噴 500?兩行程式讓後端乖乖報錯

【PHP】畫面一片空白、直接噴 500?兩行程式讓後端乖乖報錯

[ 筆記 ] JavaScript 進階 09 - What is 「this」?

[ 筆記 ] JavaScript 進階 09 - What is 「this」?

 Python Table Manners 系列

Python Table Manners 系列






留言討論