我有一些PowerShell連接到我的服務器,並返回一個地址傳遞給一個批處理文件。從powershell傳遞到批處理時丟失部分url
這個批處理文件是一個需求,因爲它是一個HTA /批量混合,允許我爲該項目運行創建的用戶界面。該URL作爲iframe源來傳遞,以從服務器加載一些結果。
我有一個變量$content
在PowerShell中,它等於http://example.com/selectMultiple.php?choice=[{"id":51,"p":100},{"id":52,"p":94}]
(稍加修改,以保護我的服務器地址)
我然後啓動該批處理文件,同時通過該$content
變量像這樣
"Launching $content"
Start-Process "files\hybrid.bat" "$content"
在批處理文件中,我有一些代碼表明echo是傳遞給它的值。
set "link=%~1"
echo %link%
但是通過後,一些變量被修剪。這回聲http://example.com/selectMultiple.php?choice
- 這導致我相信有一些=
符號正在打破字符串。
我試過在powershell和從我的服務器(PHP)urldecode方法,並沒有解決這個問題。
我在這裏損失將非常感激任何幫助解決這一issue./
(我標記PHP爲好,證明我確實有被返回URL代碼工作能力)
你不能擺脫批處理文件,並直接用powershell做東西?你可以將文本轉儲到文件並在批處理文件中讀取(作爲解決方法)?你能保存文本到env變量並在批處理文件中讀取它嗎? – 4c74356b41
@ 4c74356b41我無法擺脫批處理文件,我將其用作HTA/Batch Hybrid。網址正在被傳遞到基本打開HTA並加載一個帶有URL的iframe。我可以將它轉儲到一個文件作爲解決方法,但我覺得這將是一個較慢的方法,對於這個應用程序我需要儘可能快。 – GrumpyCrouton
Windows命令提示符將'='-sign作爲標記分隔符,就像空格一樣;也許它在你的批處理文件中使用'set「link =%*」'時有幫助,因爲你只傳遞鏈接...... – aschipfl