使用
DOS Command
完成工作流程自動化

講者:Leo Kuo

簡報大綱

  • 選擇 Dos 的原因
  • 查看所有指令
  • 變數
  • 判斷式
  • 迴圈 (for) 的用法
  • 常數
  • 引用
  • 叫應用程式開啟檔案
  • 執行或尋找其他應用程式的 Command Line 模式

選擇 Dos 的原因

  1. Windows 環境
  2. 不用取得系統管理員的權限
  3. 簡單容易撰寫

P.S. Windows 環境下有另一個 Power Shell 功能非常強大,但需要用系統管理員權限做完驗證才有辦法執行,故不考慮。

查看所有指令

在 DOS 模式下直接下 HELP 指令
> HELP

變數

REM 變數設定方法
REM 請注意 = 左右不可留有空白
set var1=Hello World!

REM 由使用者的輸入取得變數
REM confirm 的值將由使用者輸入決定
REM "請確認是否繼續執行(Y/N)?" 僅為提示訊息,可依需求自行修改
set /p confirm=請確認是否繼續執行(Y/N)?

REM 變數的取用方式(前後加 %)
REM 底下這行將顯示 Hello world!
echo %var1%
REM 底下這行將顯示使用者輸入的字串
echo %confirm%

判斷式

REM 判斷式寫法(一) - 判斷變數的值
REM 請注意 ( 一定要放在 if 的同一行
set var1=10
if %var1% == 10 (
    echo =10
) else (
    echo != 10
)

REM 判斷式寫法(二) - 判斷檔案和目錄是否存在
if exist C:\Windows (
    echo Windows folder exist!
) else (
    echo Windows folder not exist!
)

REM 判斷式寫法(三) - not 判斷
REM 如果 uitox 目錄不存在,則將當前目錄下的 uitox 同步過去
if not exist C:\xampp\htdocs\uitox\ (
    robocopy .\uitox C:\xampp\htdocs\uitox /E /PURGE
) 

常數

REM 使用 SET 指令能看目前所有的常數內容
SET

REM 當前目錄
echo %CD%

REM 應用程式資料目錄
echo %APPDATA%

迴圈 (for) 的用法

REM 將 list.txt 的每一行取出
for /f %%a in (list.txt) Do (
    echo %%a
)

引用其他命令

REM 引用其他命令
call lib.cmd

REM 引用其他命令
REM 加上 @ 代表不顯示該命令的執行結果
@call lib.cmd

叫應用程式開啟檔案

  1. Firefox
    "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://google.com
     
  2. Notepad++
    "C:\Program Files (x86)\Notepad++\notepad++.exe" C:\readme.TXT

直接將該應用程式能開啟的檔案或資源位置餵給應用程式試看看!!

執行或尋找其他應用程式的 Command Line 模式

尋找方法

1. 從應用程式捷徑按 [右鍵] [內容] ,檢視目標是否帶有參數
2. 在 dos 下執行該應用程式為加上參數 /?

3. 在 dos 下執行該應用程式為加上參數 --help
4. google 看看

範例

  1. Git Bash
    Git/bin/sh.exe --login -i {sh 命令檔}
  2. Winscp
    winscp.exe sftp://account:password@example.com/ /script={FTP 命令檔}

Q & A

Q: 使用 git bash 執行命令時是否有辦法帶參數?
A: 如同一般Linux 底下的 shell script 命令,直接用 $1 ~ $9 去存取  參數

' sh 命令檔內容
echo args is $1
rem dom 指令內容
> Git/bin/sh.exe --login -i {sh 命令檔} --test

執行結果:
 args is --test

請參考: http://linux.vbird.org/linux_basic/0340bashshell-scripts.php

參考網址

Workflow Automation By Dos Command

By Wen-Bin Kuo

Workflow Automation By Dos Command

使用 Dos Command 來進行工作流程的自動化

  • 1,801