2014-02-14 173 views
0

我有一個ps1腳本,如下所示,它過濾文件並輸出格式化的HTML文件。計劃的Powershell腳本不會運行

$a = "<style>" 
$a = $a + "BODY{background-color:peachpuff;}" 
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}" 
$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:thistle}" 
$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:PaleGoldenrod}" 
$a = $a + "</style>" 

$b = Get-Date -Format u  

Get-ChildItem -Recurse K:\AppData\*.* -Filter *.CATPart | Where{$_.LastWriteTime -gt (Get-Date).AddDays(-6)} | sort LastWriteTime -descending | select name,LastWriteTime,Directory | convertto-html -head $a -body "<H2>CATIA PAST 7 DAYS -- $b </H2>" | out-file C:\aaa\catia_result.htm 

我可以手動運行此腳本,沒有任何問題。但是當我安排它運行時,它只給了我格式化的htm文件,沒有任何過濾數據。這是我的任務計劃程序使用的參數:

powershell.exe -ExecutionPolicy Bypass -Command "C:\aaa\RLTP_HTML_FINAL.ps1" 

我試圖Unrestricted變化executionpolicy,它仍然不會工作。任務歷史記錄顯示任務已完成,但HTML文件中沒有數據。

我也嘗試使用批處理文件調用powershell來運行腳本,這是相同的結果,它只適用於手動操作,但任務調度程序。

+0

您正在嘗試寫入根目錄的''c:\''文件夾。你確定你有寫入權限嗎? –

+0

對不起,這只是一個例子...我會改變它 –

+0

如果使用-File而不是-Command會怎麼樣? – EBGreen

回答

0

最有可能的是,當您計劃執行腳本時,它可能沒有映射到K:\驅動器。確保:

  1. 在K驅動器映射腳本,使用Get-PSDrive cmdlet的
  2. 您的憑據,該計劃任務設置爲使用可以訪問K:\驅動

或者,你可以簡單地指定一個UNC路徑,而不是引用K:\驅動器。

PS。使用-ExecutionPolicy Bypass好工作。這有助於避免執行策略的任何問題! :)只要您使用該參數,執行策略設置爲什麼並不重要。

如果你想捕捉到你的腳本的任何錯誤,這讓您的最後一行:

Add-Content -Path $PSScriptRoot\error.log -Value $error; 

您可能會看到一些關於K:\驅動器丟失。

+0

是的,驅動器映射,從來沒有想過,我會嘗試。謝謝很多 –

+0

哈,它不能工作,因爲驅動器映射,非常感謝,真的有所幫助。 –

+0

@ user3303155:很高興聽到它! –

相關問題