2013年8月8日 星期四

批次檔(Batch) & MS-Dos 指令集

    其實,我對於兩者的分辨還搞不清楚,所以到現在都還是模糊狀態。不過有了較簡易的整理,以後要使用也比較不用特別去查,稍微看一下自己的筆記,印象也會比較深刻些。

    為什麼會有這篇的產出,是因為目前因為需要批大量的改程式作業,假如套用了批次檔,會稍微比起開起編譯平台在執行的快多了。

    雖然東西還很東缺西缺,不過總比沒有紀錄的好多了!以後有機會還會再補充。

========================================================================
  • Batch 
  • %1 ~ %9
    • 指的是輸入的參數,像是把檔案拖曳到bat檔案上面,而第一個檔案就是指%1
  • Echo
    • 打開"命令式"的顯示,或關掉顯示
      • Echo [{on | off}]
    • 顯示訊息,訊息的部分可以替換成參數,但要以%%包夾起來
      • Echo [message]
      • Echo %GPP%
    • 換行指令
      • @Echo:
  • @
    • 可以將該行命令隱蔽起來
      • @Echo %GPP%
  • Rem
    • 註解的指令,在編輯程式碼時,可以用來作為提醒之助解用途
      • Echo Setup Parameter
  • Set
    • 設定參數的指派指令
      • SET PF=%PROGRAMFILES%    //把%PROGRAMFILES%指派給PF
      • %PROGRAMFILES%是指系統資料夾
      • %TIME%是指系統時間
      • ※未完
    • 字元替換用法
      • SET T1=%T0::=%     //將T0中的':'替換成'',再指派給T1
      • SET T2=%T1: =0%   //把T1中的空白替換成0,再指派給T2
  • :、GOTO
    • : 將後續字串視為標籤,也就是TAG,可以搭配GOTO來使用
    • GOTO 移動到 :XX標籤位置的指令
      • :reLoop
        Pause
        GOTO reLoop    //跑回:reLoop位置
  • If 
    • If Else
      • 假如遇到選擇的情況,可以透過IF ELSE 來幫忙分類
        • If (Not) "%1" == "XX" (
                  Statement1
          )    Else    (    Statement2
          )        //假如%1(NOT)等於XX,就執行S1,不等於就找ELSE的S2
        • IF "%~x2"==".cpp" (
          "%GPP%" -c "%1" -o "%~dpn1%.o"
          )   ELSE   (
          GOTO ALL_END
          ) //參照環境路徑~x%?,假如第二個檔案的附檔名是.cpp,那就跑true
    • If Exist
      • 對於某種類別或是特定檔案進行偵測
        • IF (Not) Exist "XX" Statement1 ←假如(Not)存在XX這東西,就執行S1
  • Shift /x
    • 將第x個檔案的參數順位,向前搬移
      • SHIFT /1     //拖曳了三個檔案進.bat,而執行到了SHIFT 就會把第一個檔案蓋掉,讓第二個檔案變成第一個檔案,後續的檔案進行遞補
  • Call
  • start
  • for
  • 環境變數
    • %~fI
      • 完整的路徑包含副檔名
    • %~dI
      • I 所在的硬碟路徑
    • %~pI
      • I所在的資料夾路徑,除了硬碟路徑
    • %~nI
      • 檔案名稱
    • %~xI
      • 副檔名
    • %~sI
      • 完整的路徑變成短址
    • %~aI
      • 檔案的屬性
    • %~tI
      • 檔案創建的日期/時間
    • %~zI
      • 檔案的大小
    • %~$PATH:I
      • 查找列在路徑環境變數的目錄
    • 變數組合
      • %~dpnI
        • dI、pI、nI的串接
      • %~nxI
        • 檔案名稱與副檔名串接
      • %~fsI
        • 完整的路徑變成縮址
      • %~dp$PATH:I
      • %~ftzaI
        • 文件屬性 + 日期 + 檔案大小 + 完整路徑名
========================================================================
  • MS-Dos
  • move *_fail.cpp fail\ 
    • 將檔案名稱最後為_fail.cpp的檔案,移動到fail的資料夾底下
  • del *.exe
    • 將檔案的副檔名為.exe的檔案,進行刪除的操作


沒有留言:

張貼留言