我有兩個需要在PowerShell中執行的命令。其他一切都可以在批處理中下載。我可以在PowerShell中編寫整個東西,但我必須確保執行策略設置正確,這可能是我們在這些服務器上的netadmins的安全問題。Powershell需要執行兩行
在我的批處理腳本,我需要:
- 打倒IIS應用程序緩存(我可以用APPCMD)
- 從服務器上下載一個新的zip文件(使用我wget的版PowerShell的)
- 刪除www目錄
- 解壓在www目錄
- 的zip文件中的所有舊文件調出IIS應用程序緩存。
在第2步,我的兩個PowerShell命令是:
$client = new-object System.Net.WebClient
$client.DownloadFile("http://path/to/file", "file.name")
有沒有一種方法可以讓我這兩條線合併成一個單一的PowerShell命令,就像使用分號在Unix上的方式,我可以?我試圖把兩線之間的分號,並得到了以下錯誤:
Missing ')' in method call.
At line:1 char:62
+ $client.DownloadFile( <<<< http://path/to/file)
+ CategoryInfo : ParserError: (CloseParenToken:TokenId) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInMethodCall
然而,所謂的「wget.ps1」實際PowerShell腳本里面,它執行與此:
$ powershell -c wget.ps1
我明白了!我花了一段時間才明白你在做什麼,你一直在創建對象並且一次調用方法,整潔的把戲,我決定把所有的東西寫出來Powershell,並且作爲我的過程的一部分,改變了執行策略,整件事情沒有任何意義:如果默認情況下我不能執行腳本,Powershell這樣強大的語言如何使用批處理,如果我可以簡單地執行DOS命令行來改變策略,爲什麼要打擾? –
令人沮喪和令人沮喪的(sp)是我將如何描述我的執行策略的經驗,esp當包含遠程腳本時,獲得它的工作是很好的,但有很多與PS。 – Matt
請注意$(...)類型的查詢。它類似於(..)在答案中使用的類型。最好的,亞光 – Matt