Brian的雜記
  • Introduction
  • Brian's 雜記
    • My Awesome API
    • FB 大頭貼
    • 硬體雜記
    • PHP
    • project
      • 模擬器
      • WAMP
    • WinMerge
    • 雜記
      • LINQ
      • 方法
      • Grid View
      • namespace
      • global
      • 物件導向
      • Excel
      • VS2017
      • single sign on
      • Master
      • Https
      • 憑證
      • 略過憑證不符
      • NLog
      • 團隊開發
      • .NET Core
      • 共用網路上的芳鄰
      • 爬蟲
      • NPOI
      • RSS
      • 多執行緒
      • 記憶體回收
      • 密碼學
        • BCrypt
        • AES
      • 主機環境建置
      • Session
      • Error
      • IIS 相關
      • 無障礙相關
      • 介面
        • 影像地圖
      • telnet
        • smtp
      • nslookup
      • 協助客戶解決問題
      • 驗證欄位
      • 網站管理
      • 工具整理
    • 正規表示法
    • 影像處理
    • IntelliJ Idea
    • 觀念
      • Clean Code
        • 命名
        • 函式
        • 註解
        • 編排
        • 物件及資料結構
        • 錯誤處理
        • 邊界
        • 單元測試
        • 類別
      • Java 程式風格
      • Design Pattern
        • 單例模式
      • 同步
      • 畫圖
        • ER-Model
        • 類別圖
        • Use Case
        • 有限狀態機
      • 資料 API 文件 分析
      • CORS & SSL
      • 利用DISC幫助溝通
      • OAS
    • 檔案上傳
      • FileStore
      • App Engine
      • Google Storage
    • OAuth vs Open ID
    • MIME
    • 虛擬桌面
    • 待看資料
    • Selenium
    • CDN
    • HTTP
    • 編碼
    • 2nd-ML100Days
      • jupyter
    • 微服務
      • 設計
        • 1 ~ 5
        • 6
        • 7
        • 8
        • 9
    • Gradle
    • Maven
    • Error
    • 批次檔 BAT
    • Kurento
    • WebSocket & WebRTC
  • 需求面能力
    • User Story
  • Google Cloud Platform
    • Compute Engine
  • Python
    • 基本語法
    • Pandas
    • 套件
    • Matplotlib
    • Encoder
    • jupyter
  • Java
    • Java
      • File
      • Exception
      • 物件導向觀念
      • 加密
      • HTTP
      • 集合
      • Stream()
      • Web
      • ResultSet
      • JDK6
      • JDK8
    • 讀取、複寫MP3 Tag
    • Log4j2
    • Servlet
      • 容器
    • JSP
    • JBOSS
    • JWT
    • PreparedStatement
    • Error
    • Spring
      • Spring Boot
        • @Value
        • Build
      • RequestParameter
      • Error
      • Autowired
      • JPA
      • FeignClient
      • WebSocket
      • thymeleaf
      • Security
      • Test
      • Scheduled
      • Redirect
    • IntelliJ
  • Linux
    • Linux
    • Shell Script
    • Cygwin(在Windows執行Linux指令)
  • 前端
    • HTML
      • Link
    • CSS
      • Position
      • padding color
      • display
    • JS
      • jQuery
        • Select2
      • fancybox
      • ES6
      • 效能
      • GoogleMap API
        • Marker
        • InfoWindow
      • 事件
      • CKEditor
      • TGOS
      • JSON
      • QRcode
      • 核心概念
        • 物件 變數 型別
          • number
          • String
          • boolean
          • null & undefined
          • Symbol
        • JS 物件概念
        • 深入理解JS 函式物件
        • 更多ES2015/ES6 全新語言特性
      • Promise
    • 效果應用
  • 資料庫
    • 注意事項
    • MariaDB
    • MySQL
      • inner join 和 join
      • 字串比對
      • 倒數資料
    • SQL
      • DDL 資料定義語言
      • DML 資料操縱語言
      • DCL 資料控制語言
      • TCL 交易控制語言
      • T-SQL
      • CTE
      • JOIN
    • Oracle
    • MSSQL 操作
      • 新增使用者
      • SQL 指令
      • Sequence
    • 差異比較
    • MyBatis
    • Workbench 操作
    • SQL Injection
  • 版本控制
    • Gitlab
      • sign up
      • sign in
      • add project
      • add members
    • SourceGit
      • install
    • SmartGit
      • install
      • operate
      • git 操作雜記
    • TortoiseGit
    • Git
    • TFS
    • SVN
  • Test
    • 軟體測試原則
    • 演算法
    • XMind
      • install
    • Jenkins
      • 建置
    • HTTPie
    • Postman
    • 測試驅動開發
    • 撰寫測試的觀念
    • 測試框架
    • IoC & DI
    • 隔絕相依性的方式
    • JUnit
    • NUnit
    • 習慣
    • 虛設常式
  • Angular
    • hello world
    • ng-options
    • ES6
    • Build & Conponect
    • HttpClient
    • 部署
  • ASP.NET Web Form
    • Chapter 2
      • 2-1
        • 小東西
    • 略過請求驗證
  • Go
Powered by GitBook
On this page
  • 批次檔基本介紹
  • 範例1
  • 範例2(IF)
  • 範例3(GOTO)

Was this helpful?

  1. Brian's 雜記

批次檔 BAT

PreviousErrorNextKurento

Last updated 4 years ago

Was this helpful?

批次檔基本介紹

將命令提示字元(Command Prompt)中輸入的指令集結起來,輸入在文字檔中,用以批次執行,稱之為批次檔(Batch file)。

請注意!命令提示字元預設的字碼頁為 ANSI/BIG5 編碼,因此檢視 UTF-8 編碼檔案時會出現亂碼,所以批次檔的編寫應盡量使用 ANSI 的編碼方式。

所以這邊的指令也只適用於Windows系統喔 ~

大大推薦的網站:()

參考資料:()

範例1

參考資料:()

@ECHO OFF CD C:\Users\brian\Documents PAUSE REM 複製到D:\底下~~~ COPY *.txt C:\Users\brian\Documents\backup ECHO finish

第一行打 "ECHO OFF",這樣一來之後的命令都不會顯示,改成 "ECHO ON" 的話,每行輸入的命令就都會出現在螢幕上~

第二行 CD <路徑> 就是前往那個路徑,這是基本的 DOS 語法

第三行 PAUSE 會暫停,cmd 視窗就會停住等你按任意鍵繼續

第四行 REM 是註解用的 (remark),DOS 會略過此行(另外 兩個冒號)::也可以達到同樣的效果

第五行 COPY *.txt <路徑>,是複製所有 txt 結尾的檔案,到路徑目標資料夾那裡( *是萬用字元,也是基本 DOS 語法喔xD)

第六行 ECHO finish,會在螢幕上顯示 ECHO 後面的字串,所以就會顯示 "finish"

範例2(IF)

@ECHO OFF IF "%1"=="A" ECHO Apple IF "%1"=="B" ECHO Boy

輸入 >C:\sp.bat A

輸出: Apple

假設這個程式叫做 "sp",並且放在 C:\ 底下,

那麼,當我們在cmd 輸入 "C:\sp.bat A" 時,參數 "A" 就會被讀到 %1 裡面,於是程式最後就印出了 "Apple"。

補充一點:最多可以傳送九個參數喔,%1 ~ %9

範例3(GOTO)

@ECHO OFF CD C:\Users\brian\Documents IF EXIST %1 GOTO PrintFile GOTO FileNotExist :PrintFile TYPE %1 GOTOEnd :FileNotExist ECHO File Not Exist! GOTO End :End

輸入: C:\test.bat list.txt

輸出: < list.txt 檔案裡的內容 >

假設這個程式叫做 "test.bat",並且 "D:\David\備份BA~1\電腦\Chrome\" 底下有放一個叫 "list.txt" 的檔案,

那麼當輸入上面那一串內容時,就會把 txt 裡面內容都印出來。而若找不到此一檔案名稱,就會印出 "File Not Exist!"

補充一點:BAT 程式裡,所有的 "%1" 都是會被輸入參數直接取代掉的喔~

第三行,IF EXIST <路徑> <檔名> <動作> ;路徑如果是同個資料夾就可以忽略;其實也可以改成 IF NOT EXIST <.....>

第三行,GOTO PrintFile,效果是直接跳到第五行 ":PrintFile" 那裡執行,也就是說中間的都會略過不執行;標籤的名字可以隨便取,像是 "ABC_NAME001" 等等

第四行,如果第三行沒有跳走的話,就會 GOTO 跳到 FileNotExist

第五~七行,是 PrintFile 所要執行的內容;TYPE <檔名> 會把那個檔案印出來,eg. TYPE list.txt

第七行,執行完記得要再 GOTO 到底下的 :End,否則它會繼續往下執行第八行、第九行喔!

第八~十行,是 FileNotExist 所要執行的內容

參考資料:()

參考資料:()

http://steve-jansen.github.io/guides/windows-batch-scripting/index.html
https://blog.poychang.net/note-batch/
https://davidhu0903ex3.pixnet.net/blog/post/443069270-%5B%E6%95%99%E5%AD%B8%5D-dos%E6%89%B9%E6%AC%A1%E6%AA%94%E8%A3%BD%E4%BD%9C---bat%E6%AA%94%E8%AA%9E%E6%B3%95
https://davidhu0903ex3.pixnet.net/blog/post/443069270-%5B%E6%95%99%E5%AD%B8%5D-dos%E6%89%B9%E6%AC%A1%E6%AA%94%E8%A3%BD%E4%BD%9C---bat%E6%AA%94%E8%AA%9E%E6%B3%95
https://davidhu0903ex3.pixnet.net/blog/post/443069270-%5B%E6%95%99%E5%AD%B8%5D-dos%E6%89%B9%E6%AC%A1%E6%AA%94%E8%A3%BD%E4%BD%9C---bat%E6%AA%94%E8%AA%9E%E6%B3%95