最新消息

[公告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)失效導致頁面載入變慢,目前已做調整,請多見諒。
顯示具有 batch 標籤的文章。 顯示所有文章
顯示具有 batch 標籤的文章。 顯示所有文章

2017年1月29日 星期日

Firebase Cloud Messaging (FCM) 入門到進階應用(4) --- 網頁安裝SSL憑證

Firebase Cloud Messaging 訊息傳送主要還是在行動裝置上,Firebase Cloud Messaging (FCM) 入門到進階應用(1) --- 開發環境建立 所述每個裝置都需要一個專屬的Token,才能將訊息送達,這樣的前提是每個裝置要在安全的網頁上取得Token。

2017年1月14日 星期六

LINE Notify 入門到進階應用(7) --- 透過Batch file + Excel VBA + Python + Line Notify 傳送每日盤後資料

前面介紹了很多 Line Notify 結合外部程式與軟體的應用,今天再補充一個使用Batch file + Excel VBA + Python與Line Notify的應用,透過 Batch file、Excel VBA、Python、Line Notify相互搭配做到在自家電腦就可完成的盤後資料通知。

2016年4月3日 星期日

使用Batch 一次開啟多個Excel檔案模擬平行執行

你是否有過想開啟多個Excel視窗進行多工的處理,Excel除了可以在同一個WorkBook中開啟多的活頁簿或工作表來處理外,另一種方式就是右鍵新開多個Excel來執行處理,如果想要一次開啟多個Excel,但手動方式就稍嫌慢了點,這裡我們以Batch下command方式來開啟多個Excel,並執行我們要做的動作。

2013年7月1日 星期一

Batch讀檔案的行數

近期需要以Batch來取得檔案的總行數,找了一些範例測試可以work順便記錄下來。

2013年6月23日 星期日

WMI取得OS所有相關資訊

最近寫batch需要取得OS資訊,想了想不知用什麼方法,最後找到一個我覺得最適合的方法,就是用WMI取得OS資訊,果然不負眾望可以列出我想要的關鍵資訊。

2013年6月20日 星期四

Batch對字串編碼進行轉換與新增字串

最近要對大量registry檔案進行字串調整,但一個個開檔、整理再關檔,真的很麻煩,鑑於此想說使用batch來完整這些手動的流程。
由Batch指令reg export導出的檔案*.reg檔為Unicode的格式,所以在使用batch指令處理檔案內容時,將會遇到無法開啟檔案存取的問題,如上一篇文章 Batch指令Findstr無法存取Unicode編碼的檔案 所提,需要藉由Type進行Unicode與Ascii的轉檔動作,以上這些還不是主要的困難,困難點在如何插入字串,如HKEY_LOCAL_MACHINE\SYSTEM要變成HKEY_LOCAL_MACHINE\PE3-SYSTEM,這才是要花時間思考,花了點時間想了一下要使用Batch現有的指令來完成這項任務還真不容易,順便將這部分的程式碼記錄下來,以便日後了解。

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


2012年9月24日 星期一

Batch教學--變數使用

環境變數的使用,可以做到跟VC++中CString的用法類似,各位可以參考如下。
set A=1234567890
set B=%A%

REM 從第3 字元後開始取2個字元
set B=%A:~3,2%
echo %B%
>>45

REM 從前面開始取5個字元
set B=%A:~,5%
echo %B%
>>12345

REM 從第3字元後開始取到後面。
set B=%A:~3%
echo %B%
>>4567890

REM 從後面開始取前5個字元。
set B=%A:~-5%
echo %B%
>>67890

REM 從開頭取到最後2個字元不取。
set B=%A:~0,-2%
echo %B%
>>12345678

REM 字元中有5的取代成sss。
set B=%A:5=sss%
echo %B%
>>1234sss67890
其他常用系統變數
系統變數
描述
%n(%0、%1 ~ %9)
外部變數輸入所使用的變數代稱,如C/C++的Argv
%CMDEXTVERSION%
展開為目前的命令處理擴充功能的版本號碼
%CMDCMDLINE%
處理目前命令提示字元視窗命令的cmd.exe的完整路徑
%CD%
目前的工作資料夾
%DATE%
目前的系統日期
%ERRORLEVEL%
最近執行過的命令的錯誤碼;非零的值表示發生過的錯誤碼
%ProgramFiles%
應用程式目錄,預設是C:\Program Files
%ProgramFiles(x86)%
應用程式目錄,預設是C:\Program Files(x86)
%Path%
執行檔的搜尋路徑
%RANDOM%
顯示0到32767之間的十進位整數亂數
%SystemRoot%
系統根目錄,預設是C:\WINNT或C:\WINDOWS
%SystemDirectory%
系統目錄,預設是C:\WINNT\System32或C:\WINDOWS\System32
%TIME%
目前的系統時間
%Temp%、%Tmp%
暫存檔目錄
%USERNAME%
使用者帳號名稱
%WINDIR%
Windows目錄,預設是C:\WINNT或C:\WINDOWS

2012年9月20日 星期四

Batch教學--IF指令

條件判斷
IF [NOT] EXIST filename command
IF [NOT] EXIST filename (command) ELSE (command)
IF [/I] [NOT] item1==item2 command
IF item1 Compare-op item2 command
IF item1 Compare-op item2 (command) ELSE (command)
IF DEFINED variable command

Compare-op:
EQU – 等於
NEQ – 不等於
LSS – 小於
LEQ – 小於或等於
GTR – 大於
GEQ – 大於或等於

大小相同
if "ABC"=="ABC" echo 大小寫相同

區分大小寫
if not "ABC"=="abc" echo 大小寫不同

不區分大小寫
if /I "ABC"=="abc" echo 兩者相同相等

判斷檔案是否存在
if NOT EXIST C:\text.txt echo c:\text.txt檔案不存在

如果環境變數是空,可在變數外加上特殊符號,以防止錯誤發生
IF "2" == "15" echo "bigger" 

確認環境變數是否存在
IF DEFINED a echo 123
set a=5
IF DEFINED a echo 123
set a=
IF DEFINED a echo 123

2012年9月18日 星期二

Batch教學--Set指令

顯示、計算環境變數
Set /a [expression]
Set /p variable=string
Set /p variable=<file

列出系統的所有環境變數
Set

列出系統以'P'開頭環境變數
Set P

將Amin加入USER環境變數
Set USER=Amin 

清除環境變數
Set USER=

將C:\test加入PATH環境變數
Set PATH=C:\test;%PATH%

環境變數的計算
Set /a a+=1 
運算子 (依照運算優先順序由高到低排列)
()                  - 組成一群
! ~ -               - 一元運算符
* / %               - 數字運算元
+ -                 - 數字運算元
<< >>               - 邏輯位移
&                   - 位元運算 and
^                   - 位元運算 exclusive or
|                   - 位元運算 or
= *= /= %= += –=    - 指定
&= ^= |= <<= >>=
,                   - 運算式分隔字元
各進制計算
SET /A Result=020          REM 八進制進算 
SET /A Result=16           REM 十進制進算
SET /A Result=0x10         REM 十六進制進算
SET /A Result=010+0x20-24  REM 混合進算

等待使用者輸入數值或字串再設定至環境變數a
Set /p a=

將檔案內容導入環境變數a
Set /p a=<file.txt