中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-15 14:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:批处理变量中带=的处理方法。(dos下,非CMD) 查看 849 回复 6
楼 主 请教:批处理变量中带=的处理方法。(dos下,非CMD) 发表于 2007-08-07 13:24 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
请教:批处理变量中带=的处理方法。(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
2 我也有同样的问题!顶! 发表于 2007-08-07 17:48 ·  中国 山东 济南 联通
初级用户
积分 22
发帖 9
注册 2006-11-16 10:31
UID 70675
性别 男
状态 离线
我也有同样的问题!顶!
3 发表于 2007-08-07 19:23 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
没办法,只好用穷举的笨办法处理了。
此批处理用于ghost自动备份。
Windows 一键还原
http://www.yjhy.com
4 发表于 2007-08-08 10:54 ·  中国 江苏 无锡 电信
初级用户
积分 80
发帖 43
注册 2007-04-21 23:44
UID 86017
性别 男
状态 离线
我是这么搞的,当然,也不好。

for /f "tokens=1-3 delims=; " %%i in ("%qq%") do (
set pp=%%j
if "!pp:~-2!"=="==" (set pp===) else (
if "!pp:~-1!"=="=" set pp==
))
5 发表于 2007-08-10 13:32 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
UID 87277
性别 男
来自 cmd.exe
状态 离线
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.
6 发表于 2007-08-10 13:38 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
UID 49283
性别 男
状态 离线
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
7 发表于 2007-08-10 14:17 ·  中国 北京 联通
中级用户
★★
替身
积分 269
发帖 130
注册 2007-03-23 21:41
UID 82683
性别 女
状态 离线
楼主可以用这样的形式试试

test aa bb “-cc=123”

因为没有纯DOS的测试环境,所以没有测试结果
论坛跳转: