在Windows批处理文件中的字符串变量中使用%2*

jer*_*uki 2 windows batch-file variable-assignment

我正在尝试批量创建一个简单的脚本以在Windows中运行,该脚本有3个变量:

  1. 要打开的URL
  2. 要打开的窗口数
  3. 等待新窗口打开的时间

该脚本工作正常,除非URL包含%20或%2F等字符,其中我猜cmd.exe试图将它们用作变量,我将URL的值放在引号之间,但这没有帮助.

如果我使用地址:

set url="http://domain.com/app.html?path=%2F%2Flocalhost%2Fcode&do_pause=false&go=true"
Run Code Online (Sandbox Code Playgroud)

浏览器打开这个:

https://domain.com/app.html?path=FFlocalhostFcode&do_pause=false&go=true
Run Code Online (Sandbox Code Playgroud)

有没有办法可以设置变量或处理它的值,这样它就不会将这些符号解释为变量名?

在此先感谢,这里是代码供参考.这是我第一次尝试批量编写脚本,所以任何建议都会非常感激.

@echo off

echo "Setting variables..."
set iterations=2
set url="http://domain.com/app.html?path=%2F%2Flocalhost%2Fcode&do_pause=false&go=true"
set time=5

set browser="C:\Program Files\Google\Chrome\Application\chrome.exe"

echo "Running the browser..."
FOR /L %%i IN (1,1,%iterations%) DO (
%browser% %url%
timeout %time%
)

ECHO Browsers are running, press Enter when ready to close this window. . .
pause
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试:

set url="http://domain.com/app.html?path=%%2F%%2Flocalhost%%2Fcode&do_pause=false&go=true"
Run Code Online (Sandbox Code Playgroud)

在批处理文件中,您需要%%代替%,因为%1,%2等用于命令行参数.