分類
好用軟體

好用的隱藏視窗執行console程式

一般在 windows 環境下, 起排程工作執行 console 應用程式或指令, 若是執行身份和目前登入的使用者身份一樣時, 就會出現一個 console 視窗, 為了要隱藏這個視窗, 有一種方式是使用不同的身份來執行該排程工作, 另一種方式可以應用這個小程式: Hidden Star

這個小程式可以讓執行的視窗不出現, 而且還有一個自帶的 UI 設定器, 方便使用者自行定義一個執令或是多個指令的執行, 而且不會出現干擾目前使用者的 console 視窗, 十分方便, 若有這樣需求的朋友們可以多加利用.

參考資料: http://www.howtogeek.com/howto/windows/hide-flashing-command-line-and-batch-file-windows-on-startup/

Hidden Star 網站: http://www.ntwind.com/software/hstart.html

分類
系統技術

aws終於有自己的route53管理介面了

aws (amazon web service) 終於有自己的 route53 管理介面了(console).

以往要管理 route53, 要嘛就是用 api (http://docs.amazonwebservices.com/Route53/latest/APIReference/), 不然要 ui 的管理介面就得用 3rd party 的 DNS30: http://www.dns30.com/, 對於不熟悉的人來說, 還真的不太方便.

現在 aws 推出了 route53 的管理介面了, 真的可以方便在使用 route53 服務操作上, 利用友善的管理介面, 無論是在新增修改管理上, 都更加的方便了呢!

有在使用的朋友們, 可以快去試看看: https://console.aws.amazon.com/route53/home

forfiles指令介紹

在 WINDOWS 下, 若是要將某些檔案做什麼處理的方式, 我通常使用 VBS 的 SCRIPT 來操作, 不過其實還有更方便簡捷的方法, 看到這篇文章 windows server下的檔案處理程式Forfiles , 原來其實在 windows 下還有個這麼方便的檔案列舉工具.

一般最常用的是刪除 log 檔案, 指定目錄, 並指令時間 (例如保留一週, 一週前的刪除), 就可以利用這個指令進行刪除:

forfiles /p c:\temp /s /m *.log /d -7 /c “cmd /c del @FILE”

或是列舉出指定目錄下的檔案(非目錄)的名稱列出:

forfiles /p c:\ /c “cmd /c if @isdir==FALSE echo @FILE”

請注意上面的 “FALSE” 要大寫!

再來看看微軟的官方說明: Forfiles

以下列出該指令的參數說明: (利用 forfiles /? 取得)

FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy/MM/dd | dd}]

描述:
選取一個檔案 (或一組檔案),並在檔案上
執行命令。這對批次工作很有幫助。

參數清單:
/P pathname 表示要開始搜尋的路徑。
預設資料夾是目前的
目錄 (.)。

/M searchmask 根據 searchmask 搜尋檔案。
預設的 searchmask 是 ‘*’。

/S 指示 forfiles 遞迴搜尋
子目錄。例如 “DIR /S”。

分類
程式技術

VBS中執行外部程式取得Console上的結果

在windows平台下, 透過 vbs 我們可以很容易地撰寫一些 script 做為應用程式間的連結及整合, 雖然 vbs 的效能不好, 不過透過 vbs 進行整合各外部程式及連結資料庫的讀寫是十分方便容易的.

往往在呼叫外部程式時, 我們需要取得該程式的回傳結果, 並進一步解析(parse)以取得結果的內容來處理後續要進行的作業, 所以如何取得外部程式的執行結果, 就是本篇文章要介紹的內容.

在 vbs 中一般我們要執行外部程式並等待執行完成可以透過 WScript.Shell (WshShell) 物件的 Run 方法, 例如:

Set objShell = CreateObject("WScript.Shell")  
ret = objShell.Run("notepad",5,true)  
WScript.Echo "return " & ret  
Set objShell = Nothing

其中 5 只是以目前的位置及大小呈現, 後面的 true 則是等待執行的結果, 而 ret 就取得程式的執行結果 (error code)

但若是要取得像 ipconfig 這樣指令的結果 (輸出在 console 上的), 則必須使用 Exec 方法, 但 Exec 方法並沒有等待的呼叫方式, 所以必須自行利用該方法的回傳物件 WshScriptExec 的 Staus 屬性來進行判斷是否執行結束(0為執行中, 1為執行結束), 而我們所要取得程式的執行結果, 則是利用該 WshScriptExec 物件的 StdOut 來取得, 由於該 StdOut 為 TextStream, 所以我們若要整個取出, 就使用 ReadAll 方法即可, 程式如下:

Set objShell = CreateObject("WScript.Shell")  
Set objExec = objShell.Exec("ipconfig")  
Do While objExec.Status = 0  
  WScript.Sleep 100  
Loop  
WScript.Echo objExec.StdOut.ReadAll  
Set objExec = Nothing  
Set objShell = Nothing

Run 方法參考: http://msdn2.microsoft.com/en-us/library/d5fk67ky.aspx
Exec 方法參考: http://msdn2.microsoft.com/en-us/library/ateytk4a.aspx