Board logo

标题: 怎样载入外部文本数据并赋值到变量呢? [打印本页]

作者: nvflash     时间: 2006-9-26 22:54    标题: 怎样载入外部文本数据并赋值到变量呢?

比如:C盘有一个x.txt,数据是1,我想将1这个数值赋值到变量A,怎么搞?
难道是set /a A=type c:\x.txt 吗?
好像这样行不通也
作者: electronixtar     时间: 2006-9-26 23:03
楼主的代码比较创新,赞~
作者: arding     时间: 2006-9-26 23:30
set /p A=<c:\x.txt
作者: redtek     时间: 2006-9-26 23:44
顶~~
作者: NaturalJ0     时间: 2006-9-26 23:45
学了一招。
作者: vkill     时间: 2006-9-27 08:24


  Quote:
Originally posted by arding at 2006-9-26 23:30:
set /p A=<c:\x.txt

学了
作者: hj_18     时间: 2006-9-27 20:04
学了
作者: arding     时间: 2006-9-28 04:02
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 ]
作者: smileseeker     时间: 2006-9-28 04:41
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
作者: namejm     时间: 2006-9-28 04:47
  不明白你想干什么。
作者: 9527     时间: 2006-9-28 05:02
set /p A=<c:\x.txt

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


怀疑中 ing........
作者: nvflash     时间: 2006-9-29 03:27
set /p 说通俗点,到底是干什么的?
set /a我知道是赋值为数据类型
作者: namejm     时间: 2006-9-29 04:01
  CMD命令行帮助信息是这样的:
/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。
  说得通俗一点,set /p 语句就是暂停程序的执行,在屏幕上显示 set /p input= 这个语句中=号后面的信息,并等候用户的输入,把用户的输入用变量 input 来接收。当然,这个输入不仅仅来自键盘,还可以来自一个文本内容的文件。
作者: redtek     时间: 2006-9-29 05:21
SET  /P  namejm=热心的帮助大师:)))
作者: namejm     时间: 2006-9-29 05:55
  呵呵,楼上的过奖了。

  以前受惠于willsort等一批热心高手,收获颇多。现在回想起那时候的举步维艰,深深感到老手对于新手的耐心帮扶是多么的重要。可惜现在willsort等高手因为各种原因而逐渐淡出,论坛里少了一些博学之人。怀念以前高手们济济一堂的那段时光,热切希望他们能早日从众多的事务中解脱出来,经常回来看看。
作者: nvflash     时间: 2006-9-29 07:12
不过现在的觉得论坛气氛也非常之好啊,真心感谢各位
作者: jslfz     时间: 2006-9-30 02:58
请问在dos7(win98)的环境下,这段代码
set /p A=<c:\x.txt
还能正确执行吗?
作者: zh159     时间: 2006-9-30 04:36
那就得set /?看看有没有/p参数了
作者: NaturalJ0     时间: 2006-9-30 05:26
98 没这个参数的吧
作者: lxmxn     时间: 2006-9-30 06:38
呵呵,飞扬兄所言极是。。

不愧当上版主!我支持你!
作者: jslfz     时间: 2006-9-30 09:12
已经在98的dos下试过了,不支持,郁闷啊
那么请问在98的dos下如何将外部文本文件的内容赋值给变量呢?
作者: my3439955     时间: 2006-10-2 00:16
楼上的真让人感动
有你在我们也放心呢
对了
set /p ans=<input.txt
的格式对输入的长度有限制
长度至多是1023
我推测这于Windows系统特性有关
在记事本中一行文字最多是1024个(按英文字母)
从文件中导入时也就至多是这个数目
如果是汉字的话就更少了
对于这种特别长的来自文件输入
请用For /F分析文件