将变量从 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