中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 14:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何在批处理中调用文本中的3个变量 查看 912 回复 9
楼 主 如何在批处理中调用文本中的3个变量 发表于 2007-08-21 00:11 ·  中国 安徽 合肥 电信
新手上路
积分 10
发帖 3
注册 2007-08-05 14:15
19年会员
UID 94677
性别 男
状态 离线
有一段文本为:
romng gon god

bat文件为:
cc.exe

问题,如何在cc.exe后面插入调用文本中的3个变量
2 发表于 2007-08-21 01:26 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
for /f "delims=" %%i in (某.txt) do @echo cc.exe %%i
3 发表于 2007-08-21 23:28 ·  中国 山东 潍坊 联通
初级用户
积分 39
发帖 19
注册 2007-05-12 10:23
19年会员
UID 88261
性别 男
状态 离线
楼上的有些错误的。
你是每一次调用txt中的一个参数,相当于 cc.exe romng ;cc.exe gon ;cc.exe god

要求是 cc.exe romng gon god

我也没有想出来好的解决办法,自己水平太菜了,高手解决一下啊
4 发表于 2007-08-22 00:01 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
你有测试麽?
5 发表于 2007-08-22 00:20 ·  中国 山东 潍坊 联通
初级用户
积分 39
发帖 19
注册 2007-05-12 10:23
19年会员
UID 88261
性别 男
状态 离线
不好意思啊,测试了一下,确实是如你所说的。不好意思啊,自己也是刚刚接触批处理不久

for /f "delims=" %%i in (1.txt) do @start 1.exe %%i

我自己用c++写了一个小的程序,就是显示cmd下输入的字符的。验证了你的程序的正确性。

那为什么start 为什么不是每一次调用一个参数,而是把三个参数都调用完呢?

楼上的解释一下吧,谢谢了 ^_^
附件
1.jpg
6 发表于 2007-08-22 00:25 ·  中国 山东 潍坊 联通
初级用户
积分 39
发帖 19
注册 2007-05-12 10:23
19年会员
UID 88261
性别 男
状态 离线
忘记说了,那个程序你在命令提示符下只有输入 1.exe romng gon god 才能显示如图的结果,由此验证了start 的确是执行的 1.exe romng gon god ,而不是执行的cc.exe romng ;cc.exe gon ;cc.exe god
7 发表于 2007-08-22 00:26 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
"delims=" 不分割字符串

默认空格分割……
8 发表于 2007-08-22 00:38 ·  中国 山东 潍坊 联通
初级用户
积分 39
发帖 19
注册 2007-05-12 10:23
19年会员
UID 88261
性别 男
状态 离线
哦,知道了。

自己看了帮助文件,说的是delims=xxx以xxx替换了以空格和跳格键的默认分隔符,我试验了一下,也确实如你所说的。

可是为什么delims=既然没有指定分隔符那么为什么不以空格作为分隔符呢?试验的结果怎么和帮助上有出入呢?
9 发表于 2007-08-22 00:52 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
什么都不写就是没有分割符号,而把整个delims=省略了才表示空格和跳格键的默认分隔符
10 发表于 2007-08-22 01:02 ·  中国 山东 潍坊 联通
初级用户
积分 39
发帖 19
注册 2007-05-12 10:23
19年会员
UID 88261
性别 男
状态 离线
原来如此啊,自己一直都理解错了,怪不得呢!!
再次感谢你,谢谢了 ^_^
论坛跳转: