这个主题很难解释,所以试着理解它。我正在开发一个名为RoSOX的项目,它使用URI加入服务器(另一端) 但是,此批处理程序至少需要3个参数。如果您要在Windows命令提示符下运行它,则可以像 RoSOXLauncher.bat“IPHere”“PortHere”“UsernameHere” 那样运行它。这是获取这些值的代码(不是整个程序)
@echo off
set ip=%~1
set port=%~2
set username=%~3
不幸的是,我发现另一个帖子提到URI Protocols(也就是允许从您的Web浏览器启动程序的注册表项,例如“ mailto:example@example.com ”)只接受1个参数不管节目如何。我绕过这个的理论是用逗号连接输入,因此它被认为是一个参数。它将被写成: RoSOXLauncher.bat IPHere , PortHere ,用户名这里< / strong> 一个例子是this.对数将是
有谁知道这个对数是如何在批处理中写的?这是阻止我正确运行程序的唯一因素。
答案 0 :(得分:0)
似乎很不清楚你想要什么,但如果我理解你的要求那么:
@echo off
set ip=%~1
set port=%~2
set username=%~3
如果你这样做仍然可以:
RoSOXLauncher.bat IPHere,PortHere,UsernameHere
仅仅因为除外的分隔符是whitespace
,逗号和分号。你可以试一试,亲自看看。
RoSOXLauncher.bat IPHere;PortHere;UsernameHere
RoSOXLauncher.bat IPHere PortHere UsernameHere
也会这样做。
另一方面,您发送参数的程序也可以用空格,命令或分号分隔,然后您可以简单地使用另一个常用分隔符,如-
或:
,请参阅:< / p>
@echo off
for /f "tokens=1-3 delims=-" %%i in ("%~1") do (
echo ip %%i
echo port %%j
echo username %%k
)
您可以使用以下方式运行:
RoSOXLauncher.bat IPHere-PortHere-UsernameHere
或
@echo off
for /f "tokens=1-3 delims=:" %%i in ("%~1") do (
echo ip %%i
echo port %%j
echo username %%k
)
你可以运行:
RoSOXLauncher.bat IPHere:PortHere:UsernameHere