如何将空白作为参数传递给批处理文件

时间:2014-02-11 14:05:21

标签: batch-file

我需要将空白(“”或“”)作为参数传递给批处理文件。

我必须将运行时值传递给url。我的网址是:

start iexplore http://example.com?emailAddress=%1&name=%2&phone=%3&dateofbirth=%4&hobby=%5&address=%6

如果所有参数都有某些值,则一切正常,但如果任何参数的值为“”或“”,即空白,则下一个非空白值为赋值,序列无序。

请帮忙!

2 个答案:

答案 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”时,只是为了使批处理等待,直到你按任意值