簡體   English   中英

在 PowerShell ps1 中插入變量

[英]interpolate variable in PowerShell ps1

我想從命令行獲取一個值並將其插入到以下內容中(此示例正在運行 Perl pp 命令,但這應該是無關緊要的):

$AppVersion = $args[0]
Write-Output "AppVersion = $AppVersion"

Write-Output "Creating executable"
pp --% -x -g -o C:\AppCreatorWin\$AppVersion\app.exe "C:\app\app.pl"

雖然在終端上正確打印了 AppVersion,但它沒有插入到以下命令中。

在 Powershell 中,如果你有 arguments 這樣的可執行文件,最簡單的方法是使用帶有或不帶 -Wait 開關的 Start-Process:

Start-Process -FilePath "C:\AppCreatorWin\$AppVersion\app.exe" -ArgumentList "C:\app\app.pl" -Wait

省略-Wait將在后台運行該進程。 有關詳細信息,請參閱Get-Help Start-Process

如果它只是一個沒有 arguments 的命令,那么在命令字符串前加上一個&符號就可以了:

& "regedit.exe"

對於您視為命令(行)的內插字符串,一定要防止代碼注入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM