使用
DOS Command
完成工作流程自動化
講者:Leo Kuo
簡報大綱
- 選擇 Dos 的原因
- 查看所有指令
- 變數
- 判斷式
- 迴圈 (for) 的用法
- 常數
- 引用
- 叫應用程式開啟檔案
- 執行或尋找其他應用程式的 Command Line 模式
選擇 Dos 的原因
- Windows 環境
- 不用取得系統管理員的權限
- 簡單容易撰寫
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
叫應用程式開啟檔案
- Firefox
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://google.com
- Notepad++
"C:\Program Files (x86)\Notepad++\notepad++.exe" C:\readme.TXT
直接將該應用程式能開啟的檔案或資源位置餵給應用程式試看看!!
執行或尋找其他應用程式的 Command Line 模式
尋找方法
1. 從應用程式捷徑按 [右鍵] [內容] ,檢視目標是否帶有參數
2. 在 dos 下執行該應用程式為加上參數 /?
3. 在 dos 下執行該應用程式為加上參數 --help
4. google 看看
範例
- Git Bash
Git/bin/sh.exe --login -i {sh 命令檔} - 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