中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:批处理变量中带=的处理方法。(dos下,非CMD)
作者:
标题: 请教:批处理变量中带=的处理方法。(dos下,非CMD) 上一主题 | 下一主题
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『楼 主』:  请教:批处理变量中带=的处理方法。(dos下,非CMD)

请教:批处理变量中带=的处理方法。(dos下,非CMD)

比如有一批处理test.bat,其中有 %1 %2 %3等。在输入的变量中有形如 -cc=123的形式。

假如按 test aa bb -cc=123的格式运行的话,结果是: %1是aa, %2是bb, %3是-cc,%4是123,有什么办法能比较简便地处理后得到%3为-cc=123?

另,-cc=123不一定就是%3,也可以是%2,如运行test aa -cc=123 bb。

谢谢。



Windows 一键还原
http://www.yjhy.com
2007-8-7 13:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wangbadan
初级用户





积分 22
发帖 9
注册 2006-11-16
状态 离线
『第 2 楼』:  我也有同样的问题!顶!

我也有同样的问题!顶!

2007-8-7 17:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 3 楼』:  

没办法,只好用穷举的笨办法处理了。
此批处理用于ghost自动备份。



Windows 一键还原
http://www.yjhy.com
2007-8-7 19:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tyh
初级用户





积分 80
发帖 43
注册 2007-4-21
状态 离线
『第 4 楼』:  

我是这么搞的,当然,也不好。

for /f "tokens=1-3 delims=; " %%i in ("%qq%") do (
        set pp=%%j
        if "!pp:~-2!"=="==" (set pp===) else (
        if "!pp:~-1!"=="=" set pp==
))

2007-8-8 10:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 5 楼』:  

MS-DOS里有for/f吗?

Runs a specified command for each file in a set of files.

FOR %variable IN (set) DO command [command-parameters]

  %variable  Specifies a replaceable parameter.
  (set)      Specifies a set of one or more files.  Wildcards may be used.
  command    Specifies the command to carry out for each file.
  command-parameters
             Specifies parameters or switches for the specified command.

To use the FOR command in a batch program, specify %%variable instead of
%variable.

2007-8-10 13:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by tyh at 2007-8-8 10:54:
我是这么搞的,当然,也不好。

for /f "tokens=1-3 delims=; " %%i in ("%qq%") do (
        set pp=%%j
        if "!pp:~-2!"=="==" (set pp===) else (
        if & ...

没看清标题吧?呵呵。
dos下,非CMD



Windows 一键还原
http://www.yjhy.com
2007-8-10 13:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ansipeter
中级用户

替身



积分 269
发帖 130
注册 2007-3-23
状态 离线
『第 7 楼』:  

楼主可以用这样的形式试试

test aa bb “-cc=123”

因为没有纯DOS的测试环境,所以没有测试结果

2007-8-10 14:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: