中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-31 22:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样载入外部文本数据并赋值到变量呢? 查看 3,325 回复 21
楼 主 怎样载入外部文本数据并赋值到变量呢? 发表于 2006-09-26 22:54 ·  中国 重庆 合川区 电信
初级用户
积分 126
发帖 38
注册 2006-09-26 20:39
19年会员
UID 63726
状态 离线
比如:C盘有一个x.txt,数据是1,我想将1这个数值赋值到变量A,怎么搞?
难道是set /a A=type c:\x.txt 吗?
好像这样行不通也
2 发表于 2006-09-26 23:03 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
楼主的代码比较创新,赞~

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
3 发表于 2006-09-26 23:30 ·  中国 甘肃 兰州 中移铁通
初级用户
积分 90
发帖 38
注册 2006-01-06 18:41
20年会员
UID 48522
状态 离线
set /p A=<c:\x.txt
4 发表于 2006-09-26 23:44 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
顶~~
5 发表于 2006-09-26 23:45 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
学了一招。
6 发表于 2006-09-27 08:24 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by arding at 2006-9-26 23:30:
set /p A=<c:\x.txt

学了
7 发表于 2006-09-27 20:04 ·  中国 上海 东方有线
中级用户
★★
积分 255
发帖 57
注册 2003-06-26 00:00
23年会员
UID 5927
性别 男
状态 离线
学了
8 发表于 2006-09-28 04:02 ·  中国 甘肃 兰州 中移铁通
初级用户
积分 90
发帖 38
注册 2006-01-06 18:41
20年会员
UID 48522
状态 离线
set /p A=<c:\x.txt

type c:\x.txt | set /p A=
的效果一样,都是将文件x.txt的第一行给 A

10月5日编辑:
type c:\x.txt | set /p A=
似乎不对,当时的试验有问题,感谢楼下11楼的质疑.

[ Last edited by arding on 2006-10-8 at 20:40 ]
9 发表于 2006-09-28 04:41 ·  中国 福建 三明 电信
中级用户
★★
积分 316
发帖 83
注册 2005-03-01 00:00
21年会员
UID 36626
性别 男
状态 离线
D:\scripts>set a=123456

D:\scripts>set a
a=123456
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\new\Application Data

D:\scripts>type 1.txt
第1行
第2行
第3行
D:\scripts>type 1.txt |set /p a=

D:\scripts>set a
a=123456
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\new\Application Data

D:\scripts>set /p a=<1.txt

D:\scripts>set a
a=第1行
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\new\Application Data



D:\scripts>type 1.txt |set /p a=




这段怎么不行?
D:\scripts>set a
a=123456
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\new\Application Data
10 发表于 2006-09-28 04:47 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  不明白你想干什么。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
11 发表于 2006-09-28 05:02 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
set /p A=<c:\x.txt

type c:\x.txt | set /p A=
的效果一样,都是将文件x.txt的第一行给 A


怀疑中 ing........
我今后在论坛的目标就是做个超级坏人!!!
12 发表于 2006-09-29 03:27 ·  中国 重庆 合川区 电信
初级用户
积分 126
发帖 38
注册 2006-09-26 20:39
19年会员
UID 63726
状态 离线
set /p 说通俗点,到底是干什么的?
set /a我知道是赋值为数据类型
13 发表于 2006-09-29 04:01 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  CMD命令行帮助信息是这样的:

/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。

  说得通俗一点,set /p 语句就是暂停程序的执行,在屏幕上显示 set /p input= 这个语句中=号后面的信息,并等候用户的输入,把用户的输入用变量 input 来接收。当然,这个输入不仅仅来自键盘,还可以来自一个文本内容的文件。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
14 发表于 2006-09-29 05:21 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
SET /P namejm=热心的帮助大师:)))
15 发表于 2006-09-29 05:55 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  呵呵,楼上的过奖了。

  以前受惠于willsort等一批热心高手,收获颇多。现在回想起那时候的举步维艰,深深感到老手对于新手的耐心帮扶是多么的重要。可惜现在willsort等高手因为各种原因而逐渐淡出,论坛里少了一些博学之人。怀念以前高手们济济一堂的那段时光,热切希望他们能早日从众多的事务中解脱出来,经常回来看看。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
论坛跳转: