我无法使用几天前运行的批处理脚本,但是即使没有进行任何更改,现在也无法使用!我相信,在我不知情的情况下,系统发生了某些变化。
预期的链接是:
order.htm?order=12345
但是它变成了这样:(注意,问号变成了%3F)
order.htm%3Forder=12345
代码如下:
@echo off
echo.
set "drive=%~d0"
set "runningDir=%~dp0"
:start
ClS
Echo.
Set /P Job=Enter number:^>
@echo off
if exist c:\"Program Files (x86)"\Google\Chrome\Application\chrome.exe goto program_files_x86
:program_files_x86
start c:\"Program Files (x86)"\Google\Chrome\Application\chrome.exe --disable-print-preview --ignore-certificate-errors --disable-web-security --user-data-dir --allow-file-access-from-files %runningDir%\order.htm?order=%job%
goto end
:end
goto start
有什么建议么?
最好的问候尼古拉斯
通常应在整个文件夹/文件字符串中使用双引号,而不仅仅是其中的一部分。
Command START将第一个双引号字符串解释为新命令过程的标题。因此,在启动GUI应用程序时,""
应在START命令行上使用指定的空标题字符串,以避免用应用程序的路径将双引号文件名解释为标题字符串。
引用的批处理文件路径%~dp0
始终以反斜杠结尾。因此,请勿在此字符串或环境变量(例如runningDir
批处理文件的路径)之后指定额外的退格键。顺便说一句:运行批处理文件时的当前目录可以不同于批处理文件的目录。因此,该名称runningDir
不宜误导。环境变量的更好称呼是BatchPath
。
可以start
在批处理文件中用作标签。但是不建议这样做,因为命令START使得很难分别搜索标签和搜索命令。最好使用像这样的标签Begin
。
在url中,目录分隔符为/
,因此批处理文件路径中的每个反斜杠(Windows上为目录分隔符)都应用斜杠代替。
网址应以http://
(超文本传输协议)之类的协议开头,并应完全用双引号引起来。
最后echo/
还是echo(
比echo.
打印空白行更好,请参见Echo [Special Character]之间的差异以获取详细信息。
重写的批处理代码:
@echo off
echo/
set "BatchPath=%~dp0"
set "BatchPath=%BatchPath:\=/%"
:Begin
clS
echo/
set /P "Job=Enter number: "
if exist "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" goto program_files_x86
:program_files_x86
start "" "%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" --disable-print-preview --ignore-certificate-errors --disable-web-security --user-data-dir --allow-file-access-from-files "http://%BatchPath%order.htm?order=%Job%"
goto end
:end
goto Begin
为了了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读每个命令显示的所有帮助页面。
cls /?
echo /?
goto /?
if /?
set /?
start /?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句