首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将coldfusion变量添加到powershell中

将coldfusion变量添加到powershell中
EN

Stack Overflow用户
提问于 2013-07-08 21:38:13
回答 2查看 1.5K关注 0票数 2

我有一个简单的powershell脚本来创建txt文件,如下所示:

代码语言:javascript
复制
set-executionpolicy unrestricted -force

$MyVar = 'My Content'

$MyVar | out-file -FilePath "C:\_Testing\test.txt"

这是从这里的ColdFusion脚本调用的:-

代码语言:javascript
复制
<cfexecute name="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
    arguments="C:\ColdFusion9\wwwroot\testsite\wwwroot\_Testing\powershellTest.ps1"/>

这是可行的-创建txt文件并将内容放入,但我想要做的是通过cfexecute将一个变量传递到$MyVar中,这样内容就是动态的。

任何帮助都非常感谢

保罗

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-09 15:34:42

您需要的是一个具有参数的脚本。参数定义放在脚本的顶部,如下所示:

代码语言:javascript
复制
param(
    [Parameter(Mandatory=$true)]
    [string]
    # Variable to test that parameter is getting set from ColdFusion
    $MyVar
)

$MyVar | Set-Content "C:\_Testing\test.txt"

First come属性,这是关于参数的元数据。在示例中,我们声明参数是必需的,如果没有提供值,PowerShell将给出一个错误。

接下来是变量的类型。您可以使用任何.NET类型,例如[int][DateTime][Hashtable]等。

类型后面是变量的文档,当有人运行Get-Help powershellTest.ps1时很有用。

最后,我们声明变量$MyVar

您可以在about_functions_advanced_parameters帮助主题中获得有关参数、参数属性、验证等的详细信息。

现在,棘手的部分是,您对PowerShell的调用实际上是首先通过cmd.exe,因此根据脚本参数的值,您可能需要做一些奇妙的魔术来正确引用内容。

此外,请使用Set-Content而不是Out-FileOut-File用于保存二进制对象和数据,并将对UCS-2中的文本文件进行编码。Set-Content将以ANSI/UTF-8对文件进行编码。

票数 1
EN

Stack Overflow用户

发布于 2013-07-09 01:26:12

你能做的就是让它进入一个允许参数的函数。然后,您可以在必要时使用params调用函数。

示例:

代码语言:javascript
复制
function CreateText
{
  param ( [string]$MyVar
  )

 $MyVar | out-file -FilePath "C:\_Testing\test.txt"

}

CreateText -MyVar "Content Here"    

你可以这样叫它:

代码语言:javascript
复制
<cfexecute name="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
arguments="C:\ColdFusion9\wwwroot\testsite\wwwroot\_Testing\powershellTest.ps1 -MyVar "conent" "/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17528100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档