如何在PowerShell中使用类似下面这样的命令并将其拆分为多行?
&"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web" -dest:contentPath="c:\websites\xxx\wwwroot\,computerName=192.168.1.1,username=administrator,password=xxx"
发布于 2014-06-20 01:53:21
另一种更清晰的参数传递方法是splatting。
将参数和值定义为哈希表,如下所示:
$params = @{ 'class' = 'Win32_BIOS';
'computername'='SERVER-R2';
'filter'='drivetype=3';
'credential'='Administrator' }
然后像这样调用你的命令集:
Get-WmiObject @params
微软文档:About Splatting
TechNet杂志2011:Windows PowerShell: Splatting
发布于 2013-08-02 01:44:49
您可以使用反引号运算符:
& "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" `
-verb:sync `
-source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web" `
-dest:contentPath="c:\websites\xxx\wwwroot\,computerName=192.168.1.1,username=administrator,password=xxx"
这对我来说还是有点太长了,所以我会使用一些命名良好的变量:
$msdeployPath = "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"
$verbArg = '-verb:sync'
$sourceArg = '-source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web"'
$destArg = '-dest:contentPath="c:\websites\xxx\wwwroot\,computerName=192.168.1.1,username=administrator,password=xxx"'
& $msdeployPath $verbArg $sourceArg $destArg
发布于 2014-11-12 07:42:14
如果你有一个函数:
$function:foo | % Invoke @(
'bar'
'directory'
$true
)
如果你有一个cmdlet
[PSCustomObject] @{
Path = 'bar'
Type = 'directory'
Force = $true
} | New-Item
如果您有一个应用程序:
{foo.exe @Args} | % Invoke @(
'bar'
'directory'
$true
)
或
icm {foo.exe @Args} -Args @(
'bar'
'directory'
$true
)
https://stackoverflow.com/questions/2608144
复制相似问题