问题是我需要将带有问号的一个参数传递给.bat批处理文件。如果我使用问号,则参数不能很好地通过。我该如何解决这个问题?
我遇到了这条线的麻烦:
script.bat /n"output.owl" /r"http://www.address.com/blog/?feed=rss2"
=
符号也可能是一个问题。
答案 0 :(得分:2)
我怀疑这里的问题是原始批处理文件正在使用for循环 处理命令行选项,正在使用问号 filename通配符扩展。
> type fortest.bat
@echo off
for %%a in (%*) do (
echo arg is %%a
)
> fortest a b c/?d
arg is a
arg is b
使用位置参数%1和%2可避免通配符扩展 在for ...(%*)循环中完成。移位运算符避免了外卡 如果需要处理未知数量的参数,也需要进行扩展。
> type shifttest.bat
@echo off
:loop
if "x%1" == "x" goto :eof
echo arg is %1
shift /1
goto :loop
> shifttest a b c/?d
arg is a
arg is b
arg is c/?d
答案 1 :(得分:0)
你总是可以陷阱?在批处理文件中,并向用户显示相应的消息。
This is a question可以帮助你,这已经被问过了。