我需要将空白(“”或“”)作为参数传递给批处理文件。
我必须将运行时值传递给url。我的网址是:
start iexplore http://example.com?emailAddress=%1&name=%2&phone=%3&dateofbirth=%4&hobby=%5&address=%6
如果所有参数都有某些值,则一切正常,但如果任何参数的值为“”或“”,即空白,则下一个非空白值为赋值,序列无序。
请帮忙!
答案 0 :(得分:6)
使用%~x
代替%x
(其中x是您的参数编号)
这将从参数中删除任何封闭的引号,因此
echo parameter3=%~3
会显示parameter3=
如果您使用yourbatch one two "" four
如果你传递"
空间“as a parameter then this will show a space as
%~3`(这有点难以看到 - 请尝试附加一个明显的字符串)
在任何一种情况下,如果您使用%x
,则会显示封闭引号 - ""
或" "
,具体取决于您在该位置传递的内容。你可能不想在那里引用...
答案 1 :(得分:0)
只需在批处理示例中传递alt + 0255即可 a.bat
a =“ÿ”echo“ÿ”set / p c =“gg”
在这里ÿ将在批处理时被视为emptysace,当运行ignore set / p c =“gg”时,只是为了使批处理等待,直到你按任意值