PowerShell的 - 如何正确地传递字符串参数? [英] PowerShell - How do I pass string parameters correctly?

查看:259
本文介绍了PowerShell的 - 如何正确地传递字符串参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有文档或字符串传递到PowerShell函数的规则的文章?我只是试图做一些字符串连接/格式,但它把所有的参数代入第一个占位符。

code

 函数CreateAppPoolScript([字符串] $ AppPoolName,[字符串] $ AppPoolUser,[字符串] $ AppPoolPass)
{
    #命令创建一个IIS应用程序池
    $ AppPoolScript =CSCRIPT ADSUTIL.VBS CREATESVC / AppPools / $ AppPoolNameIIsApplicationPool`n
    $ AppPoolScript + =的cscript adsutil.vbs设置,SVC / AppPools / $ AppPoolName / wamusername将$ AppPoolUser'N
    $ AppPoolScript + =的cscript adsutil.vbs设置,SVC / AppPools / $ AppPoolName /的WAMUserPass$ AppPoolPass'N
    $ AppPoolScript + =的cscript adsutil.vbs设置,SVC / AppPools / $ AppPoolName / AppPoolIdentityType,3    返回$ AppPoolScript
}
$ S = CreateAppPoolScript(名,用户,通)
写主机$ S

输出

  CSCRIPT ADSUTIL.VBS创建SVC / AppPools /名用户通行证IIsApplicationPool
CSCRIPT adsutil.vbs设置SVC / AppPools /用户名合格/ wamusername将
CSCRIPT adsutil.vbs设置SVC / AppPools /用户名合格/的WAMUserPass
CSCRIPT adsutil.vbs设置SVC / AppPools /用户名合格/ AppPoolIdentityType3


解决方案

失去了括号和逗号。

调用你的函数为:

  $ S = CreateAppPoolScript名,用户,通行证

给出了:

  CSCRIPT ADSUTIL.VBS创建SVC / AppPools /名IIsApplicationPool
CSCRIPT adsutil.vbs设置SVC / AppPools /名/ wamusername将,用户
CSCRIPT adsutil.vbs设置SVC / AppPools /名/的WAMUserPass,通行证
CSCRIPT adsutil.vbs设置SVC / AppPools /名/ AppPoolIdentityType3

Is there documentation or an article on the rules for passing strings into PowerShell functions? I just trying to do some string concatenation/formatting, but it's putting all the parameters into the first placeholder.

Code

function CreateAppPoolScript([string]$AppPoolName, [string]$AppPoolUser, [string]$AppPoolPass)
{
    # Command to create an IIS application pool
    $AppPoolScript = "cscript adsutil.vbs CREATE ""w3svc/AppPools/$AppPoolName"" IIsApplicationPool`n"
    $AppPoolScript += "cscript adsutil.vbs SET ""w3svc/AppPools/$AppPoolName/WamUserName"" ""$AppPoolUser""`n"
    $AppPoolScript += "cscript adsutil.vbs SET ""w3svc/AppPools/$AppPoolName/WamUserPass"" ""$AppPoolPass""`n"
    $AppPoolScript += "cscript adsutil.vbs SET ""w3svc/AppPools/$AppPoolName/AppPoolIdentityType"" 3"

    return $AppPoolScript
}
$s = CreateAppPoolScript("name", "user", "pass")
write-host $s

Output

cscript adsutil.vbs CREATE "w3svc/AppPools/name user pass" IIsApplicationPool
cscript adsutil.vbs SET "w3svc/AppPools/name user pass/WamUserName" ""
cscript adsutil.vbs SET "w3svc/AppPools/name user pass/WamUserPass" ""
cscript adsutil.vbs SET "w3svc/AppPools/name user pass/AppPoolIdentityType" 3

解决方案

Lose the parentheses and commas.

Calling your function as:

$s = CreateAppPoolScript "name" "user" "pass"

gives:

cscript adsutil.vbs CREATE "w3svc/AppPools/name" IIsApplicationPool
cscript adsutil.vbs SET "w3svc/AppPools/name/WamUserName" "user"
cscript adsutil.vbs SET "w3svc/AppPools/name/WamUserPass" "pass"
cscript adsutil.vbs SET "w3svc/AppPools/name/AppPoolIdentityType" 3

这篇关于PowerShell的 - 如何正确地传递字符串参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆