文章

顯示從 8月, 2016 起發佈的文章

DOS指令 -- SET和變數

DOS指令 -- SET變數 Dos的SET功能很強大也很困擾,這邊說一下筆者會用到的SET功能和變數 在Dos中,set用來建立變數和指定變數的值 在批次檔中使用set指令的時候,建議使用 setlocal/endlocal 如 : setlocal set a=1 set b=2 endlocal 如果有用到IF或FOR,可以使用參數enableextensions enabledelayedexpansion 如 : setlocal enableextensions enabledelayedexpansion for /L %%a in (1,1,3) do ( set a=!a!+%%a ) echo %a% endlocal 實際的使用方式可以參考 --這裡-- SET的基本功能 指定變數 set aaa=World!! set bbb=100 set後面加上的文字是變數, "=" 後面的任何文字就是這個變數的值 如果輸入的是數字,SET會自動判斷。如果數字的第一個字是 0 會被判定為8進位,如 : 07 注意 : =符號的前後不要空白,會被判定為文字 變數四則運算 set /a aaa=5+6  aaa=11 set /a x=5%%2        //在set /?裡面是寫一個%,如果是在批次檔內要用兩個% x=1 set /a bbb=2*(5+2) bbb=14 set ccc=4 set /a ccc*=5       //這個等於 ccc=%ccc%*5 ccc=20 set x=5 set y=2 set /a x-=%y%-1 x=4 在set後面加上 /a ,就可以進行運算相對應的符號有 + 加號,- 減號, / 除號, * 乘號 %% 為除完後的餘數 ( )內的運算會優先執行,就跟真實環境的四則運算一樣 如果要自己對自己運算(如第三個例子),可以把運算符號放在 = 的前面 第四個例子比較特別,會先把=號右邊算完,才會進行 -=的運算 讓使用者自行填入變數 set /p x=請填入生日: echo %x% 輸出: 請填入生日: 1234  <--1234是筆者填入的數字

DOS指令 -- FOR迴圈

DOS指令  --  FOR迴圈 因為最近有在寫Dos的指令,有感而發寫一些自己有在用的東西 先解釋基本的For指令 再說明遞增/遞減的 For迴圈和搜索檔案用的迴圈 最後就是筆者最常用的For迴圈 For指令常常用在重複執行類似的動作 如 : 在字串最後面加上數字 像是 : 朋友1 朋友2 朋友3 執行指令並依序處理傳回的文字 執行 dir 並比對回傳的檔案 開啟文字文件依序讀取每一行的文字,並依不同狀況執行 後兩種是我最常使用的功能,先介紹基本的 For 指令的使用方式 FOR %%a IN (香蕉,你的,巴拉) DO ( echo %%a ) 輸出會像: 香蕉 你的 巴拉 (  ) 內的東西都用光以後,迴圈就會自動結束。 而每次取得的值,這個值會存在變數 %%a 裡面,並可以在 DO 後面的 ( ) 內執行指令 說明一下每個指令的意思 FOR -- 要開始一個For迴圈最前面一定需要的文字 For %%a -- 用來儲存For迴圈產出的值,這個變數可以由使用者自行決定,可以是 %%b 或 %%g。              前面一定要有兩個%%後面加上一個英文字。注意 : 這個英文字有大小寫之分              在這個例子中用來儲存 香蕉..... IN -- 指令文字,後面一定要接  (香蕉...) <- (裡面可以放很多東西) (香蕉...) -- 文字串,在For裡面依序使用的東西 (後面會說到裡面還可以放檔案、指令) DO -- 指令文字, 後面一定要接 (echo  ....) (echo  ....) -- 要執行的指令,在這裡可以使用For的變數 %%a。                      如果指令有兩個以上可以像例子中一樣用 ( ) 包起來。 以上就是最基本的For,接著說明數字的遞增和遞減 數字的遞增和遞減 For /L %%a in (start,step,stop) DO ( Do something) 例子 For /L %%a in (1,2,7) DO ( echo %%a ) 輸出 : 1 3 5 7 /L -- For