PowerShell的 - 如何正确地传递字符串参数? [英] PowerShell - How do I pass string parameters correctly?
本文介绍了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屋!
查看全文