将变量从 PHP 传递到 Powershell 脚本
Pass variable from PHP to Powershell script
我正在尝试将变量从 PHP 传递到 powershell 脚本。
我的 PHP 代码是:
shell_exec("powershell.exe -ExecutionPolicy Bypass -NoProfile -InputFormat none -file test.ps1 '$txt' < NUL ");
我正在尝试使用以下方法在 powershell 中捕获它:
param (
[string]$txt
)
Add-Content "test.txt" $txt
$txt 是一个字符串变量,因为我可以将它写在 PHP 的 txt 文件中。 powershell执行的时候不知道哪里错了
使用以下内容:
shell_exec("powershell.exe -ExecutionPolicy Bypass -NoProfile -file test.ps1 \"$txt\"");
注意:如果 $txt
的值嵌入了 "
个字符,则需要对其进行转义。
PowerShell CLI 在将参数传递给通过 -File
执行的脚本文件时无法识别 '...'
引号;使用 "..."
.
- 您对
'$txt'
的尝试不应该导致 空 文件,但它会包含 '
个字符。 作为参数的一部分;如果 $txt
恰好包含空格,每个 space-separated 单词将成为一个 单独的参数 ,第一个以 '
开头,最后一个以 '
结尾'
由于您没有通过标准输入提供输入,因此不需要 -inputFormat
和 < NUL
我正在尝试将变量从 PHP 传递到 powershell 脚本。
我的 PHP 代码是:
shell_exec("powershell.exe -ExecutionPolicy Bypass -NoProfile -InputFormat none -file test.ps1 '$txt' < NUL ");
我正在尝试使用以下方法在 powershell 中捕获它:
param (
[string]$txt
)
Add-Content "test.txt" $txt
$txt 是一个字符串变量,因为我可以将它写在 PHP 的 txt 文件中。 powershell执行的时候不知道哪里错了
使用以下内容:
shell_exec("powershell.exe -ExecutionPolicy Bypass -NoProfile -file test.ps1 \"$txt\"");
注意:如果 $txt
的值嵌入了 "
个字符,则需要对其进行转义。
PowerShell CLI 在将参数传递给通过
-File
执行的脚本文件时无法识别'...'
引号;使用"..."
.- 您对
'$txt'
的尝试不应该导致 空 文件,但它会包含'
个字符。 作为参数的一部分;如果$txt
恰好包含空格,每个 space-separated 单词将成为一个 单独的参数 ,第一个以'
开头,最后一个以'
结尾'
- 您对
由于您没有通过标准输入提供输入,因此不需要
-inputFormat
和< NUL