中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 请教一个批处理[求助] 上一主题 | 下一主题
single_arche
初级用户




积分 123
发帖 5
注册 2004-5-17
状态 离线
『楼 主』:  请教一个批处理[求助]

请教高手们:
如果我要求输入五个字符串  然后将这五个字符串附给变量 并将其打印出来.可以实现吗?

因为这台机子只有DOS和UCDOS其它任何可编程的东西都没有.[em07]

2004-5-17 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhri
高级用户

zhri


积分 665
发帖 153
注册 2004-2-23
状态 离线
『第 2 楼』:  

办法倒是有。

不过,用.bat很麻烦。(.bat里是没有所谓的变量定义的,只能用想办法把你输入的东西保存成一个文本文件,用点欺骗的手法,copy con和crtl+z。最后type xx >prn......,并且把刚才的文件删掉......当然,如果直接接受字符并打印的话,就不需要中间文件了......比如:copy con prn......总之,因为.bat没有变量,所以非常麻烦......)

DOS有Qbasic的。这个不是很简单吗?(c:\dos\qbasic.exe)



2004-5-17 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
single_arche
初级用户




积分 123
发帖 5
注册 2004-5-17
状态 离线
『第 3 楼』:  

thank

2004-5-17 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
SagInvoker
初级用户




积分 257
发帖 38
注册 2004-5-20
状态 离线
『第 4 楼』:  

批处理是用来编程的吗??
就算没有QBIASC,也可以用DEBUG嘛,总之用批处理就算编出来了效果也会很不尽入人意的,我这里写了一个批处理,不是用楼上那个的欺骗手法,但是效果确实不怎么样,你看看吧
@echo off
set vp=var
echo Welcome to my test
echo if you want to terminate input,write !
:loop
set tempvar=
set vp=%vp%#
:begin
choice /c:abcdefghijklmnopqrstuvwxyz! /n
if errorlevel 27 goto end:
if errorlevel 26 goto z:
if errorlevel 25 goto y:
if errorlevel 24 goto x:
if errorlevel 23 goto w:
if errorlevel 22 goto v:
if errorlevel 21 goto u:
if errorlevel 20 goto t:
if errorlevel 19 goto s:
if errorlevel 18 goto r:
if errorlevel 17 goto q:
if errorlevel 16 goto p:
if errorlevel 15 goto o:
if errorlevel 14 goto n:
if errorlevel 13 goto m:
if errorlevel 12 goto l:
if errorlevel 11 goto k:
if errorlevel 10 goto j:
if errorlevel 9 goto i:
if errorlevel 8 goto h:
if errorlevel 7 goto g:
if errorlevel 6 goto f:
if errorlevel 5 goto e:
if errorlevel 4 goto d:
if errorlevel 3 goto c:
if errorlevel 2 goto b:
if errorlevel 1 goto a:
:a
set tempvar=%tempvar%a
goto begin
:b
set tempvar=%tempvar%b
goto begin
:c
set tempvar=%tempvar%c
goto begin
:d
set tempvar=%tempvar%d
goto begin
:e
set tempvar=%tempvar%e
goto begin
:f
set tempvar=%tempvar%f
goto begin
:g
set tempvar=%tempvar%g
:h
set tempvar=%tempvar%h
goto begin
:i
set tempvar=%tempvar%i
goto begin
:j
set tempvar=%tempvar%j
goto begin
:k
set tempvar=%tempvar%k
goto begin
:l
set tempvar=%tempvar%l
goto begin
:m
set tempvar=%tempvar%m
goto begin
:n
set tempvar=%tempvar%n
goto begin
:o
set tempvar=%tempvar%o
goto begin
:p
set tempvar=%tempvar%p
goto begin
:q
set tempvar=%tempvar%q
goto begin
:r
set tempvar=%tempvar%r
goto begin
:s
set tempvar=%tempvar%s
goto begin
:t
set tempvar=%tempvar%t
goto begin
:u
set tempvar=%tempvar%u
goto begin
:v
set tempvar=%tempvar%v
goto begin
:w
set tempvar=%tempvar%w
goto begin
:x
set tempvar=%tempvar%x
goto begin
:y
set tempvar=%tempvar%y
:z
set tempvar=%tempvar%z
goto begin
:end
set %vp%=%tempvar%
if %vp%==var##### goto ok
goto loop
:ok
echo what you input is:
echo %var#%
echo %var##%
echo %var###%
echo %var####%
echo %var#####%
:finish

附:其实我也很想知道怎么在一个没有编程环境的地方写点东西,所以很想学汇编,不过一个人看来看去总觉得很难,如果谁有兴趣学汇编,或者懂汇编,可以交个朋友吗,也指导一下吧,先谢了
我的QQ:105695504,Email-geniuscjy2163.com
(加我QQ的时候随便打点什么话都行,我那个身份验证是防哪些滥发广告的)

2004-5-21 00:00
查看资料  发送邮件  发短消息 网志  OICQ (105695504)  编辑帖子  回复  引用回复
SagInvoker
初级用户




积分 257
发帖 38
注册 2004-5-20
状态 离线
『第 5 楼』:  

更正一下,CHOICE后面应该重定向到NUL,打漏了,请原谅.

2004-5-21 00:00
查看资料  发送邮件  发短消息 网志  OICQ (105695504)  编辑帖子  回复  引用回复
SagInvoker
初级用户




积分 257
发帖 38
注册 2004-5-20
状态 离线
『第 6 楼』:  

不好意思,刚才看了这篇本站帖子
http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=8905
真的觉得自己太菜了,简直象个白痴一样,收回上面所有发言
附上修改以后的代码,望请指点
@echo off
if not [%1]==[] goto step2
echo e102''''''''set %%1=''''''''>cmd.dat
echo w>>cmd.dat
echo q>>cmd.dat

echo           Welcome to my test
echo if you want to terminate input string,write ^Z
for %%x in (var1 var2 var3 var4 var5) do call %0 %%x
goto output
:step2
echo please test your string:
fc con nul /lb1 /n|FIND "1:" >%1.bat
debug %1.bat nul
call %1.bat %1
goto end
:output
echo yes,you''''''''ve write five string now ,they are:
echo the firstis:    %var1%
echo the second: %var2%
echo the third:    %var3%
echo the forth:    %var4%
echo the fifth:     %var5%
for %%x in (var1 var2 var3 var4 var5) do del %%x.bat
:end

[此贴子已经被作者于2004-5-22 上午 02:37:05编辑过]



2004-5-21 00:00
查看资料  发送邮件  发短消息 网志  OICQ (105695504)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: