标题: [文本处理] [已解决]批处理怎么在变量中自动加上转义符 [打印本页]
作者: 522235677 时间: 2012-7-31 10:49 标题: [已解决]批处理怎么在变量中自动加上转义符
本帖最后由 522235677 于 2013-4-8 22:05 编辑
比如下面这个,网址中包含了 & 符号,打开后的网页根本就不对
set /P a=输入网址
start "" %a%
比如打开 http://www.baidu.com/s?tn=baiduhome_pg&111
然后打开了 http://www.baidu.com/s?tn=baiduhome_pg 下面有一行提示111不是有效的命令。
现在我就想能自动加入 ^ 这个符号。或者有没有更好的办法呢?
作者: CrLf 时间: 2012-7-31 10:53
加转义符:
start "" %a:&=^&%
更好的办法是:
start "" "%a%"
作者: 522235677 时间: 2012-7-31 14:37
回复 2# CrLf
我现在用的是%2的参数,而不是%a%了,那我应该怎么改呢?
start "" %2
%2 中包含了& 符号
作者: CrLf 时间: 2012-7-31 16:49
回复 3# 522235677
那就简单用双引号吧:复制代码
作者: 522235677 时间: 2012-8-1 15:32
回复 4# CrLf
这个还真的不行
作者: cjiabing 时间: 2012-8-1 17:56
你可能在输入执行的过程中就出现问题了,所以,在set /p 段就开始加双引号,然后在执行段start也加双引号。- @echo off
- set /p "input=输入网址:"
- start "" "%input%"
复制代码
作者: CrLf 时间: 2012-8-1 18:27
回复 5# 522235677
不行有很多种,哪种不行
作者: 522235677 时间: 2012-8-3 16:52
回复 6# cjiabing
你的这个方法还真的可以
但我现在用的是%2的参数,那我应该怎么改呢?
start "" %2
%2 中包含了& 符号
作者: cjiabing 时间: 2012-8-3 19:48
"%~2"
作者: 522235677 时间: 2012-8-4 09:50
回复 9# cjiabing
C:\Users\Administrator>C:\Users\Administrator\Desktop\b.bat 1 http://www.baidu.c
om/s?wd=%E6%89%B9%E5%A4%84%E7%90%86%E4%B9%8B%E5%AE%B6&rsv_spt=1&issp=1&rsv_bp=0&
ie=utf-8&tn=baiduhome_pg&oq=pichuliz&rsp=0&f=3&inputT=10313]
Loading...
1 http://www.baidu.com/s?wd=%E6%89 ... 6%E4%B9%8B%E5%AE%B6
'rsv_spt' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'issp' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'rsv_bp' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'ie' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'tn' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'oq' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'rsp' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'f' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'inputT' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\Administrator>
作者: CrLf 时间: 2012-8-4 17:01
本帖最后由 CrLf 于 2012-8-4 17:17 编辑
回复 10# 522235677
调用时应传递已经转义的参数,否则脚本实际上无法接收到参数,因为参数在脚本还没执行的时候就被解释为以 & 连接的多条命令执行了:- ::模拟一下 t.bat 被调用的方式
- cmd /c t.bat "" 你的&参数
- ::这里 cmd 的理解是 cmd /c (t.bat "" 你的)&(参数)
复制代码
参考类似讨论:
http://bbs.bathome.net/thread-7509-1-1.html
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |