我有一些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