iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 3
0
自我挑戰組

Re : 從懶開始的自動化生活系列 第 3

[D3] : Automatically schedule task on Windows

主要想講在Windows中如何透過Task Scheduler介面和寫一份簡單的Script檔來幫你完成一些生活中的小事。

就以同樣例子來說

Auto Clean Temp Data

1. 準備一份ps1檔

建立一個建立一個存放暫存檔案的資料夾,作為存放暫存資料的資料夾
和隨意先建立一份空白文字檔,將其副檔名改成ps1。

2. 在文檔裡面打上指令:

$PATH = "你的資料夾的絕對路徑"
if((Test-Path -Path $PATH)){
    cd $PATH
    attrib /S -H
    rd -r "$PATH\*"
}

rd -r "PATH" 舉例來說:

rd -r "C:\Users\TempDownloads\*"

rd即刪除路徑,但如果有子資料夾存在,系統變回彈出視窗詢問,這時可以加上-r,即我要連子資料夾都刪,便不會有詢問視窗出現。

接著 rd -r 是沒辦法刪掉隱藏檔的,因此我們要在刪除前先將檔案全改為非隱藏。
windows的attrib指令可以將檔案的屬性做更改。

attrib /D /S -H

-H:即是要將檔案的隱藏屬性拿掉
/S:將屬性賦予到所有匹配到的檔案及其子項目的檔案
/D:將屬性賦予到該路徑上所有檔案和資料夾
兩個一起用即是將屬性賦予到該路徑及其子項目的所有檔案和資料夾

為了預防誤刪我預期外路徑上的檔案,我做了if scope防範,確認該路徑存在,存在的話cd到該路徑底下去。

if(Test-Path -Path $PATH){
    cd $PATH
}

$PATH\** 意指任意檔名都Matching,也就是說TempDownloads 底下的任何檔案都會被匹配上。

3. 把資料夾和ps1檔放到某個你滿意的地方

4. 設置Scheduled

1.打開你的Task Scheduled
2.視窗右側Create Basic Task

3.輸入你的Task名字

4.選擇你要多久一次

5.設定執行時間

6.設定執行的模式

7.Program/script意指你要用什麼終端去執行它,我們寫的Powershell Script,所以這邊填上Powershell,Arguments則是要餵給Powershell的參數

powershell "ps1檔路徑" 要給ps1檔的變數1 要給ps1檔的變數2 以此類推...
這個範例沒有需要變數因此就只要付上檔案路徑

8.最後確認一下設定資訊

9.可以看到自己設定的Task已經出現在Task Scheduler上,可以按一下綠色三角形的Run試跑看看。


懶惰無極限,Task Scheduler操作太麻煩?

這邊有執行設置Daily Task的Script :D

  1. 將這份檔案存成ps1檔
  2. 打開Powershell -> 輸入"這份檔案路徑" "這個DailyTask的名字" "時間點" "你要執行的Script檔" 即可設定一個Task囉
param (
    [string]$TaskName = "MyDailyTask.ps1"
    [datetime]$ExcutionTime = "11:00am",
    [string]$TaskPath = "YourTaskNamePath.ps1"
 )

$Action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument $TaskPath
$Trigger = New-ScheduledTaskTrigger -Daily -At $ExcutionTime
$Settings = New-ScheduledTaskSettingsSet
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Register-ScheduledTask -TaskName $TaskName -InputObject $Task
	

決定拿庫存出來講,聊聊Git Hook跟相關應用,撐過這週末XD
下一篇:About Git Hook


上一篇
[D2] : Automatically schedule task on Mac
下一篇
[D4] : A little talk about Git Hooks
系列文
Re : 從懶開始的自動化生活30

尚未有邦友留言

立即登入留言