最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。

2012年9月29日 星期六

Batch教學--For使用

今天介紹使用Batch中的For指令

FOR /R – 列舉目前目錄下的全部子目錄名所有檔案
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
FOR /R %i IN (*) DO echo %i
FOR /D – 列舉目前目錄下的子目錄名
FOR /D %variable IN (set) DO command [command-parameters]
FOR /D %i IN (*) DO echo %i
FOR /L – 以增量形式從開始到結束一個數字序列
FOR /L %variable IN (start,step,end) DO command [command-parameters]
set sum=0
FOR /L %i IN (1, 1, 100) DO set /a sum=sum+%i
echo %sum%
>> 5050
FOR /F – 做在一個檔案裡的指令
FOR /F ["options"] %variable in (file-set) do command [command-parameters]
FOR /F ["options"] %variable in ("string") do command [command-parameters]
FOR /F ["options"] %variable in ('command') do command [command-parameters]
file-set為一個或多個檔案名稱。/f 分析每個檔案的每一行,跳過空白行。"options" 關鍵字:
  1. eol=c 用來決定斷行符號,預設為 \n,但可換成其他字元(其中 c 只能是一個字元)
  2. skip=n 用來決定要先跳過幾層迴圈(也就是跳過前面幾行的意思)
  3. delims=xxx 用來決定欄位的分隔字元,預設為空白與TAB符號,並可自訂多個字元,多個字元時需用逗號(,)區隔開。
  4. tokens=x,y,m-n用來決定一次要取出幾個欄位,第一個欄位會存放在第一個自動變數,第二個欄位會存放在第二個自動變數裡,依此類推,說明如下。
  • 第一個變數為%i並設並tokens=1-3,則後面將得到的變數為%%i、%%j、%%k
Set a=aaa_bbb_111-222-333
For /F "tokens=1-3 delims=_" %%i in ("%a%") do echo %%i  %%j  %%k
>> aaa  bbb  111-222-333
  • 第一個變數為%i並設並tokens=2,3,則後面將得到的變數為%%i、%%j
Set a=aaa_bbb_111-222-333
For /F "tokens=1-3 delims=_" %%i in ("%a%") do echo %%i  %%j
>> bbb  111-222-333