是否有可能让 powershell 输入代码行响应 cfexecute 中的 coldfusion?
Is it possible to get powershell entered code line response to coldfusion in cfexecute?
我正在尝试将 Powershell 的输出返回给 ColdFusion,其中包含不同的属性,例如 errorVariable、Variable、errorFile、outputFile,但没有成功。
Coldfusion代码-
<cfset hello = "hello">
<cfexecute name="C:\windows\system32\cmd.exe"
arguments="/c start c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe C:\Users\raimonds\Desktop\lala.ps1 '#hello#'"
variable="test">
<cfdump var="#test#">
和powershell代码-
param([string]$hello)
Write-Host $hello
谢谢
有两个问题:
语法有点不对。去掉参数字符串中的 start
。使 powerShell.exe 可执行文件也更简单。
"timeout" 可能导致命令 return 甚至在接收到输出之前。将其增加到大于 0 的值,变量将被填充。
... [Default Timeout 0] starts a process and returns immediately. ColdFusion may
return control to the calling page before any program output displays.
To ensure that program output displays, set the value to 2 or higher.
将超时增加到大于 0 的值,您应该会看到结果。
注意: 始终捕获任何错误,以便代码可以相应地处理任何问题。
<cfset inputVar = "test value here">
<cfexecute name="c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe"
arguments="C:\path\to\yourScript.ps1 '#inputVar#'"
variable="result"
errorvariable="err"
timeout="2">
<cfdump var="#result#">
<cfdump var="#err#">
我正在尝试将 Powershell 的输出返回给 ColdFusion,其中包含不同的属性,例如 errorVariable、Variable、errorFile、outputFile,但没有成功。
Coldfusion代码-
<cfset hello = "hello">
<cfexecute name="C:\windows\system32\cmd.exe"
arguments="/c start c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe C:\Users\raimonds\Desktop\lala.ps1 '#hello#'"
variable="test">
<cfdump var="#test#">
和powershell代码-
param([string]$hello)
Write-Host $hello
谢谢
有两个问题:
语法有点不对。去掉参数字符串中的
start
。使 powerShell.exe 可执行文件也更简单。"timeout" 可能导致命令 return 甚至在接收到输出之前。将其增加到大于 0 的值,变量将被填充。
... [Default Timeout 0] starts a process and returns immediately. ColdFusion may return control to the calling page before any program output displays. To ensure that program output displays, set the value to 2 or higher.
将超时增加到大于 0 的值,您应该会看到结果。
注意: 始终捕获任何错误,以便代码可以相应地处理任何问题。
<cfset inputVar = "test value here">
<cfexecute name="c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe"
arguments="C:\path\to\yourScript.ps1 '#inputVar#'"
variable="result"
errorvariable="err"
timeout="2">
<cfdump var="#result#">
<cfdump var="#err#">