#### 我有檢查系統。我有檢查系統。我有檢查系統。很重要,所以要說三遍。
其實事由是這樣的,因為每天需要檢查系統並且記錄,記錄的方式是用Word,內容部份如下:
由上的步驟可知,有幾個是浪費時間的操作,第一個是手動複製Word,第二是更改檔案名稱,第三是更改內容的日期。
為了增加程式設計的能力,所以用powershell來幫我完成上述的動作。
首先產生一個樣版的Word,檔案為sample.doc,如下:
#### 完整的powershell程式碼如下,檔案名稱autoLogWord.ps1
$Path="E:\定期檢查記錄\每日檢查記錄\"
$Word=new-object -ComObject "Word.Application"
$Word.Visible=$true
$Doc=$Word.Documents.open($Path + "sample.doc")
$Table=$Word.ActiveDocument.Tables(1)
$Year=(get-date).tostring("yyyy")
$Month=(get-date).tostring("MM")
$Day=(get-date).tostring("dd")
for($i=2; $i -lt 16; $i++){
$Table.Cell($i,1).Range.InsertAfter($Year)
$Table.Cell($i,2).Range.InsertAfter($Month)
$Table.Cell($i,3).Range.InsertAfter($Day)
}
$NewFile=$Path + $Year + $Month + $Day + ".doc"
$Doc.SaveAs([ref]$NewFile)
$Doc.Close()
$Word.Quit()
explorer.exe 'E:\定期檢查記錄\每日檢查記錄'
#### 程式說明:
其中$Word=new-object -ComObject "Word.Application" :為引入Word應用程式物件
$Doc=$Word.Documents.open($Path + "sample.doc") :就是開啟樣版檔案
$Table=$Word.ActiveDocument.Tables(1) :因為我們要操作的內容是Word的表格,所以要引入,參數1是指Word上第一個表格
for($i=2; $i -lt 16; $i++) :因為表格的第1列是標題,所以從第2列開始,而我的記錄表格實際上有15列,所以加上-lt(小於)的運算子
$Table.Cell($i,1).Range.InsertAfter($Year) :這個就像是Excel的儲存格操作一樣,指定第幾欄第幾列並將資料填上
$NewFile=$Path + $Year + $Month + $Day + ".doc" : 依照今天日期的年、月、日建立檔名
$Doc.SaveAs([ref]$NewFile) : 實際存檔
#### 設定排程
有了程式,當然要設定排程,這樣才能每天自動幫我執行。