Powershell 指令碼自動下載 FTP Server上面固定格式的檔案

來源:互聯網
上載者:User

如何用寫一個bat指令碼返回昨天的年月日,其實用bat寫很麻煩,你要寫一個For 來拿到Date的年月日,然後再寫一個小程式來推算昨天的年月日。其實要使能直接執行.net代碼多好,.net Datetime.Now.AddDays(-1) 就是昨天了

 

其實Powershell就幫你回答這個問題,可以利用.net 類庫豐富的功能支援,比如操作XML,檔案IO,網路等特性。當然也可也自己來寫一個類庫,來實現複雜的指令碼。

 

這時候,你開啟powershell,敲入 [DateTime]::Now

則返回當前的日期,如果看看Now有哪些方法和屬性

[DateTime]::Now | get-member

當然你要計算你長了多大的話,[DateTime]::Now-[DateTime]("yourbirthday")就返回你的年齡了,呵呵。我通常用這個來計算一下我baby幾個月幾天了。

 

powershell允許你定義一個變數,針對FTP下載的問題。你首先產生你要下載的檔案名稱,然後整理到一個String,發給FTP就可以了。

以下是一個簡單的例子。

$yersterday=[DateTime]::Now.AddDays(-1);
$yyyy=$yersterday.Year;
$mm=$yersterday.Month;
$day=$yersterday.Day;
$file1=[String]::Format("90193698_{0}{1:00}{2:00}_{0}{1:00}{2:00}.zip",$yyyy,$mm,$day); 

$cmd = "open yourftpserver
user username password

binary
get $file1"

$cmd | ftp -i -n

 

把他另存新檔一個PS1檔案。 如果讓他自動啟動並執行話,寫一個windows schedule task "powershell fullpathoftheps1"

預設poweshell有一個執行策略,不運行執行偉簽名的檔案。你可以改為

set-ExecutionPolicy RemoteSigned

或者直接改一下註冊表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

 

或許這是個PS很好的一個實用例子吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.