中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 03:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]纯DOS下用什么代替SET/P来接收一个字符串到变量[已结] 查看 2,827 回复 6
楼 主 [求助]纯DOS下用什么代替SET/P来接收一个字符串到变量[已结] 发表于 2006-08-19 21:56 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
写好 SET /P 到纯 DOS 运行,发现 DOS 下根本没这参数。那应该怎么办呢?用什么办法来替代原来的 SET /P 呢?向各位求教了。

[ Last edited by NaturalJ0 on 2006-8-22 at 08:06 ]
2 发表于 2006-08-21 14:33 ·  中国 广东 东莞 电信
中级用户
★★
积分 387
发帖 104
注册 2004-11-19 00:00
21年会员
UID 33813
性别 男
状态 离线
choice.exe
3 发表于 2006-08-21 14:45 ·  中国 北京 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
20年会员
UID 43784
来自 北京
状态 离线
choice 可以选择,但赋值给变量就有些说不过去了吧
除非用CHOICE选项到指定标签,然后在各个标签里用SET设置指定变量,这样应该就可以了
4 发表于 2006-08-22 03:15 ·  中国 山西 运城 联通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re NaturalJ0:

choice 接受的是单个字符,而非字符串。

DOS 自身并不提供可以直接获取字符串到变量的机制或命令,但正因如此,满足这一需求的第三方工具相当多,几乎一半以上的批处理扩展工具都支持从控制台接收字符串并保存到变量。比如input,askenv,aset,xset,strings,wbat,be,等。

当然,也有不使用第三方工具的范例,只是其中牵涉的技术细节较为复杂和繁琐。所以,使用 Herbert Kleebauer 利用 ASCII Assembler 技术编写的 myinput.com 可能是更好的选择。

批处理中 录入屏幕输入的字符串变量 语句如何
http://www.cn-dos.net/forum/viewthread.php?tid=5283

input.bat

@echo off
echo BATCH_INPUT___hgQX-PPP_XPPP E#HH0E50EG0Ef0Ehs>myinput.com
echo myinput.bat hoAX5@@PZYh@xX5@D3!r/P







[ Last edited by willsort on 2006-8-22 at 03:17 ]
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
5 发表于 2006-08-22 07:59 ·  中国 江苏 苏州 吴中区 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
谢谢各位。
特别是楼上的方法,好强啊,居然直接生成这种文件。 = =
我当时因为查到要用第三方工具,但又一时下载不到第三方工具,而且不知道用法。所以就自己用 C 写了个小程序来实现输入功能了。
6 发表于 2006-08-22 10:38 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
ASCode。赞一个

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'>"
7 发表于 2006-09-22 07:37 ·  中国 浙江 台州 电信
新手上路
积分 2
发帖 1
注册 2006-09-22 00:57
19年会员
UID 63308
状态 离线
为什么我一执行input.bat就死在input your name那里了?
论坛跳转: