我有两个需要在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