Hướng dẫn php pass variable to powershell script - php chuyển biến sang tập lệnh powershell

Tôi đang cố gắng chuyển một biến từ PHP sang tập lệnh PowerShell.

Mã PHP của tôi là:

shell_exec["powershell.exe -ExecutionPolicy Bypass -NoProfile -InputFormat none -file test.ps1 '$txt' < NUL "];

Và tôi đang cố gắng nắm bắt nó trong PowerShell bằng cách sử dụng:

param [
  [string]$txt
]

Add-Content "test.txt" $txt

$ Txt là một biến chuỗi vì tôi có thể viết nó trong một tệp TXT từ PHP. Tôi không biết chính xác nơi tôi sai vì PowerShell bị xử tử.

hỏi ngày 21 tháng 1 lúc 12:18Jan 21 at 12:18

5

Sử dụng những điều sau:

shell_exec["powershell.exe -ExecutionPolicy Bypass -NoProfile -file test.ps1 \"$txt\""];

Lưu ý: Nếu giá trị của

param [
  [string]$txt
]

Add-Content "test.txt" $txt
0 đã nhúng
param [
  [string]$txt
]

Add-Content "test.txt" $txt
1 chars., Chúng cần phải được thoát ra.

  • PowerShell CLI không nhận ra

    param [
      [string]$txt
    ]
    
    Add-Content "test.txt" $txt
    
    2 trích dẫn khi chuyển các đối số cho tệp tập lệnh được thực thi qua
    param [
      [string]$txt
    ]
    
    Add-Content "test.txt" $txt
    
    3; Sử dụng
    param [
      [string]$txt
    ]
    
    Add-Content "test.txt" $txt
    
    4.

    • Nỗ lực của bạn với
      param [
        [string]$txt
      ]
      
      Add-Content "test.txt" $txt
      
      5 không nên dẫn đến một tệp trống, nhưng nó sẽ bao gồm các ký tự
      param [
        [string]$txt
      ]
      
      Add-Content "test.txt" $txt
      
      6. như một phần của lập luận; Nếu
      param [
        [string]$txt
      ]
      
      Add-Content "test.txt" $txt
      
      0 xảy ra có chứa khoảng trắng, mỗi từ được phân tách không gian sẽ trở thành một đối số riêng biệt, với lần đầu tiên bắt đầu với
      param [
        [string]$txt
      ]
      
      Add-Content "test.txt" $txt
      
      6 và kết thúc cuối cùng trong
      param [
        [string]$txt
      ]
      
      Add-Content "test.txt" $txt
      
      6
  • Vì bạn không cung cấp đầu vào qua Stdin, nên không cần phải có

    shell_exec["powershell.exe -ExecutionPolicy Bypass -NoProfile -file test.ps1 \"$txt\""];
    
    0 và
    shell_exec["powershell.exe -ExecutionPolicy Bypass -NoProfile -file test.ps1 \"$txt\""];
    
    1

Đã trả lời ngày 21 tháng 1 lúc 19:04Jan 21 at 19:04

mklement0mklement0mklement0

338K59 Huy hiệu vàng535 Huy hiệu bạc667 Huy hiệu Đồng59 gold badges535 silver badges667 bronze badges

0

Tôi thích rằng tôi có thể chạy các lệnh XenApp PowerShell đơn giản trong tập lệnh PHP. Vì vậy, ví dụ, điều này hoạt động cũng như nhiều lệnh get khác:

Chủ Đề